From 694b98c5774a7d84c2ca0609bf3a4d305e306619 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 23:47:40 +0000 Subject: [PATCH] Bump github.com/gardener/gardener from 1.94.1 to 1.95.2 Bumps [github.com/gardener/gardener](https://github.com/gardener/gardener) from 1.94.1 to 1.95.2. - [Release notes](https://github.com/gardener/gardener/releases) - [Commits](https://github.com/gardener/gardener/compare/v1.94.1...v1.95.2) --- updated-dependencies: - dependency-name: github.com/gardener/gardener dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 20 +- go.sum | 40 +- .../gardener/hack/.ci/component_descriptor | 0 .../gardener/gardener/hack/.ci/doc.go | 0 .../gardener/hack/.ci/prepare_release | 0 .../gardener/hack/.ci/set_dependency_version | 0 .../gardener/hack/LICENSE_BOILERPLATE.txt | 0 .../gardener/hack/add-license-header.sh | 0 .../gardener/gardener/hack/check-apidiff.sh | 0 .../gardener/gardener/hack/check-charts.sh | 0 .../gardener/gardener/hack/check-generate.sh | 0 .../gardener/gardener/hack/check-imports.sh | 0 .../gardener/hack/check-license-header.sh | 0 .../gardener/hack/check-plutono-dashboards.sh | 0 .../hack/check-skaffold-deps-for-binary.sh | 0 .../gardener/hack/check-skaffold-deps.sh | 0 .../gardener/gardener/hack/check.sh | 0 .../gardener/hack/cherry-pick-pull.sh | 0 .../gardener/gardener/hack/ci-common.sh | 0 .../hack/ci-e2e-kind-ha-multi-zone.sh | 0 .../hack/ci-e2e-kind-ha-single-zone.sh | 0 .../ci-e2e-kind-migration-ha-single-zone.sh | 0 .../gardener/hack/ci-e2e-kind-migration.sh | 0 .../gardener/hack/ci-e2e-kind-operator.sh | 0 .../gardener/hack/ci-e2e-kind-upgrade.sh | 0 .../gardener/gardener/hack/ci-e2e-kind.sh | 0 .../gardener/gardener/hack/clean.sh | 0 .../hack/compare-k8s-admission-plugins.sh | 0 .../gardener/hack/compare-k8s-api-groups.sh | 0 .../gardener/hack/compare-k8s-controllers.sh | 0 .../hack/compare-k8s-feature-gates.sh | 0 .../gardener/hack/compute-k8s-controllers.sh | 110 +- .../hack/download_gardener_source_code.sh | 0 .../gardener/gardener/hack/format.sh | 0 .../gardener/gardener/hack/gardener-down.sh | 0 .../gardener/hack/gardener-extensions-down.sh | 0 .../gardener/hack/gardener-extensions-up.sh | 0 .../hack/generate-controller-registration.sh | 0 .../gardener/gardener/hack/generate-crds.sh | 0 .../hack/generate-imagename-constants.sh | 0 .../hack/generate-logcheck-symlinks.sh | 0 .../gardener/hack/generate-monitoring-docs.sh | 50 - .../gardener/hack/generate-parallel.sh | 0 .../gardener/hack/generate-sequential.sh | 0 .../gardener/gardener/hack/generate.sh | 8 +- .../gardener/hack/get-build-ld-flags.sh | 0 .../gardener/gardener/hack/hook-me.sh | 0 .../gardener/gardener/hack/install.sh | 0 .../gardener/gardener/hack/kind-down.sh | 0 .../gardener/hack/kind-extensions-up.sh | 0 .../gardener/gardener/hack/kind-up.sh | 2 +- .../gardener/gardener/hack/prepare-envtest.sh | 0 .../gardener/gardener/hack/start-envtest.sh | 0 .../gardener/hack/test-cover-clean.sh | 0 .../gardener/gardener/hack/test-cover.sh | 0 .../gardener/gardener/hack/test-e2e-local.env | 0 .../gardener/gardener/hack/test-e2e-local.sh | 25 +- .../gardener/hack/test-integration.env | 0 .../gardener/hack/test-integration.sh | 0 .../gardener/gardener/hack/test-prometheus.sh | 16 - .../github.com/gardener/gardener/hack/test.sh | 0 .../gardener/gardener/hack/tools.go | 0 .../gardener/gardener/hack/tools.mk | 10 +- .../gardener/gardener/hack/update-codegen.sh | 25 + .../gardener/gardener/hack/update-protobuf.sh | 0 .../gardener/hack/update-skaffold-deps.sh | 0 .../gardener/gardener/hack/vgopath-setup.sh | 0 .../gardener/pkg/apis/core/types_project.go | 12 + .../gardener/pkg/apis/core/types_shoot.go | 4 + .../core/v1beta1/constants/types_constants.go | 18 +- .../pkg/apis/core/v1beta1/generated.pb.go | 2099 ++++--- .../pkg/apis/core/v1beta1/generated.proto | 18 + .../pkg/apis/core/v1beta1/types_project.go | 15 + .../pkg/apis/core/v1beta1/types_shoot.go | 4 + .../core/v1beta1/zz_generated.conversion.go | 36 + .../core/v1beta1/zz_generated.deepcopy.go | 29 + .../pkg/apis/core/zz_generated.deepcopy.go | 29 + .../apis/extensions/v1alpha1/types_worker.go | 11 +- .../v1alpha1/zz_generated.deepcopy.go | 5 + .../gardener/pkg/apis/security/doc.go | 9 + .../pkg/apis/security/install/install.go | 29 + .../gardener/pkg/apis/security/register.go | 43 + .../apis/security/types_credentialsbinding.go | 51 + .../pkg/apis/security/v1alpha1/defaults.go | 13 + .../v1alpha1/defaults_credentialsbinding.go | 18 + .../pkg/apis/security/v1alpha1/doc.go | 16 + .../apis/security/v1alpha1/generated.pb.go | 888 +++ .../apis/security/v1alpha1/generated.proto | 54 + .../pkg/apis/security/v1alpha1/register.go | 47 + .../v1alpha1/types_credentialsbinding.go | 54 + .../v1alpha1/zz_generated.conversion.go | 131 + .../v1alpha1/zz_generated.deepcopy.go | 97 + .../v1alpha1/zz_generated.defaults.go | 34 + .../apis/security/zz_generated.deepcopy.go | 97 + .../gardener/pkg/client/kubernetes/client.go | 2 + .../gardener/pkg/client/kubernetes/types.go | 2 + .../pkg/gardenlet/apis/config/types.go | 2 - .../gardenlet/apis/config/v1alpha1/types.go | 3 - .../v1alpha1/zz_generated.conversion.go | 2 - .../config/v1alpha1/zz_generated.deepcopy.go | 5 - .../apis/config/zz_generated.deepcopy.go | 5 - .../utils/gardener/deletion_confirmation.go | 9 +- .../pkg/utils/kubernetes/controllers.go | 18 +- .../validation/kubernetesversion/version.go | 1 + .../gardener/pkg/utils/version/version.go | 12 +- vendor/golang.org/x/crypto/ssh/client_auth.go | 14 +- vendor/golang.org/x/net/html/doc.go | 2 +- .../golang.org/x/net/http/httpguts/httplex.go | 13 +- vendor/golang.org/x/net/http2/frame.go | 13 +- vendor/golang.org/x/net/http2/server.go | 11 +- vendor/golang.org/x/net/http2/transport.go | 15 +- vendor/golang.org/x/sys/cpu/cpu.go | 1 + vendor/golang.org/x/sys/cpu/cpu_arm64.go | 10 + vendor/golang.org/x/sys/cpu/cpu_arm64.s | 8 + vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go | 1 + .../golang.org/x/sys/cpu/cpu_linux_arm64.go | 5 + vendor/golang.org/x/sys/unix/asm_zos_s390x.s | 665 +- vendor/golang.org/x/sys/unix/bpxsvc_zos.go | 657 ++ vendor/golang.org/x/sys/unix/bpxsvc_zos.s | 192 + vendor/golang.org/x/sys/unix/epoll_zos.go | 220 - vendor/golang.org/x/sys/unix/fstatfs_zos.go | 163 - vendor/golang.org/x/sys/unix/pagesize_unix.go | 2 +- .../x/sys/unix/readdirent_getdirentries.go | 2 +- vendor/golang.org/x/sys/unix/sockcmsg_zos.go | 58 + .../golang.org/x/sys/unix/symaddr_zos_s390x.s | 75 + .../x/sys/unix/syscall_zos_s390x.go | 1507 ++++- vendor/golang.org/x/sys/unix/sysvshm_unix.go | 2 +- .../x/sys/unix/sysvshm_unix_other.go | 2 +- vendor/golang.org/x/sys/unix/zerrors_linux.go | 9 + .../x/sys/unix/zerrors_zos_s390x.go | 233 +- .../x/sys/unix/zsymaddr_zos_s390x.s | 364 ++ .../x/sys/unix/zsyscall_zos_s390x.go | 3113 ++++++++-- .../x/sys/unix/zsysnum_linux_386.go | 5 + .../x/sys/unix/zsysnum_linux_amd64.go | 5 + .../x/sys/unix/zsysnum_linux_arm.go | 5 + .../x/sys/unix/zsysnum_linux_arm64.go | 5 + .../x/sys/unix/zsysnum_linux_loong64.go | 5 + .../x/sys/unix/zsysnum_linux_mips.go | 5 + .../x/sys/unix/zsysnum_linux_mips64.go | 5 + .../x/sys/unix/zsysnum_linux_mips64le.go | 5 + .../x/sys/unix/zsysnum_linux_mipsle.go | 5 + .../x/sys/unix/zsysnum_linux_ppc.go | 5 + .../x/sys/unix/zsysnum_linux_ppc64.go | 5 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 5 + .../x/sys/unix/zsysnum_linux_riscv64.go | 5 + .../x/sys/unix/zsysnum_linux_s390x.go | 5 + .../x/sys/unix/zsysnum_linux_sparc64.go | 5 + .../x/sys/unix/zsysnum_zos_s390x.go | 5507 +++++++++-------- vendor/golang.org/x/sys/unix/ztypes_linux.go | 26 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 8 - .../x/sys/unix/ztypes_linux_amd64.go | 9 - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 9 - .../x/sys/unix/ztypes_linux_arm64.go | 9 - .../x/sys/unix/ztypes_linux_loong64.go | 9 - .../x/sys/unix/ztypes_linux_mips.go | 9 - .../x/sys/unix/ztypes_linux_mips64.go | 9 - .../x/sys/unix/ztypes_linux_mips64le.go | 9 - .../x/sys/unix/ztypes_linux_mipsle.go | 9 - .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 9 - .../x/sys/unix/ztypes_linux_ppc64.go | 9 - .../x/sys/unix/ztypes_linux_ppc64le.go | 9 - .../x/sys/unix/ztypes_linux_riscv64.go | 9 - .../x/sys/unix/ztypes_linux_s390x.go | 9 - .../x/sys/unix/ztypes_linux_sparc64.go | 9 - .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 146 +- vendor/golang.org/x/sys/windows/aliases.go | 2 +- vendor/golang.org/x/sys/windows/empty.s | 8 - .../x/tools/go/packages/packages.go | 39 +- .../x/tools/internal/aliases/aliases.go | 12 +- .../x/tools/internal/aliases/aliases_go121.go | 15 +- .../x/tools/internal/aliases/aliases_go122.go | 69 +- .../x/tools/internal/event/tag/tag.go | 59 - .../x/tools/internal/gcimporter/iexport.go | 19 +- .../x/tools/internal/gcimporter/iimport.go | 4 +- .../tools/internal/gcimporter/ureader_yes.go | 4 +- .../x/tools/internal/gocommand/invoke.go | 10 +- .../x/tools/internal/gocommand/vendor.go | 54 + .../x/tools/internal/imports/fix.go | 38 +- .../x/tools/internal/imports/mod.go | 48 +- .../x/tools/internal/pkgbits/decoder.go | 4 + .../tools/internal/typesinternal/errorcode.go | 4 +- .../protobuf/encoding/protojson/encode.go | 20 +- .../protobuf/encoding/prototext/encode.go | 20 +- .../protobuf/internal/descfmt/stringer.go | 1 + .../editiondefaults/editions_defaults.binpb | Bin 63 -> 78 bytes .../internal/editionssupport/editions.go | 13 + .../protobuf/internal/encoding/tag/tag.go | 4 +- .../protobuf/internal/errors/errors.go | 15 + .../protobuf/internal/filedesc/desc.go | 84 +- .../protobuf/internal/filedesc/desc_init.go | 41 +- .../protobuf/internal/filedesc/desc_lazy.go | 44 +- .../protobuf/internal/filedesc/editions.go | 18 +- .../protobuf/internal/filedesc/placeholder.go | 1 + .../internal/genid/go_features_gen.go | 2 +- .../protobuf/internal/impl/codec_field.go | 64 +- .../protobuf/internal/impl/codec_map.go | 15 +- .../protobuf/internal/impl/legacy_enum.go | 1 + .../internal/impl/legacy_extension.go | 2 +- .../protobuf/internal/impl/legacy_file.go | 4 +- .../protobuf/internal/impl/legacy_message.go | 10 +- .../protobuf/internal/impl/message_reflect.go | 31 +- .../internal/impl/message_reflect_gen.go | 142 +- .../protobuf/internal/version/version.go | 2 +- .../protobuf/proto/decode.go | 2 + .../protobuf/proto/encode.go | 44 +- .../protobuf/proto/extension.go | 11 +- .../protobuf/proto/messageset.go | 7 +- .../google.golang.org/protobuf/proto/size.go | 2 + .../protobuf/reflect/protodesc/desc.go | 13 +- .../protobuf/reflect/protodesc/desc_init.go | 49 +- .../reflect/protodesc/desc_validate.go | 61 +- .../protobuf/reflect/protodesc/editions.go | 5 - .../protobuf/reflect/protodesc/proto.go | 22 + .../protobuf/reflect/protoreflect/proto.go | 2 +- .../protobuf/reflect/protoreflect/type.go | 6 + .../types/gofeaturespb/go_features.pb.go | 116 +- .../types/gofeaturespb/go_features.proto | 28 - vendor/modules.txt | 25 +- .../controller-runtime/pkg/cache/cache.go | 29 +- .../pkg/client/fieldowner.go | 106 + .../pkg/manager/internal.go | 18 + .../controller-runtime/pkg/manager/manager.go | 9 + .../pkg/metrics/server/server.go | 20 + 223 files changed, 13036 insertions(+), 5935 deletions(-) mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/component_descriptor mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/doc.go mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/prepare_release mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/add-license-header.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-apidiff.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-charts.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-generate.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-imports.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-license-header.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-plutono-dashboards.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-skaffold-deps-for-binary.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-skaffold-deps.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-common.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-multi-zone.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-single-zone.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration-ha-single-zone.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-e2e-kind-operator.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-e2e-kind-upgrade.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/ci-e2e-kind.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/clean.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/compare-k8s-admission-plugins.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/compare-k8s-api-groups.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/compute-k8s-controllers.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/download_gardener_source_code.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/format.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/gardener-down.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/gardener-extensions-down.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/gardener-extensions-up.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-controller-registration.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-crds.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-logcheck-symlinks.sh delete mode 100755 vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-parallel.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-sequential.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/get-build-ld-flags.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/hook-me.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/install.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/kind-down.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/kind-extensions-up.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/kind-up.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/prepare-envtest.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/start-envtest.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-cover-clean.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-cover.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-e2e-local.env mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-e2e-local.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-integration.env mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-integration.sh delete mode 100755 vendor/github.com/gardener/gardener/hack/test-prometheus.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/tools.go mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/tools.mk mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/update-codegen.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/update-protobuf.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/update-skaffold-deps.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/vgopath-setup.sh create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/doc.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/install/install.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/register.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/types_credentialsbinding.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults_credentialsbinding.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/doc.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.pb.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.proto create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/register.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/types_credentialsbinding.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.conversion.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.deepcopy.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.defaults.go create mode 100644 vendor/github.com/gardener/gardener/pkg/apis/security/zz_generated.deepcopy.go create mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.go create mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.s delete mode 100644 vendor/golang.org/x/sys/unix/epoll_zos.go delete mode 100644 vendor/golang.org/x/sys/unix/fstatfs_zos.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_zos.go create mode 100644 vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s create mode 100644 vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s delete mode 100644 vendor/golang.org/x/sys/windows/empty.s delete mode 100644 vendor/golang.org/x/tools/internal/event/tag/tag.go create mode 100644 vendor/google.golang.org/protobuf/internal/editionssupport/editions.go delete mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto create mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/fieldowner.go diff --git a/go.mod b/go.mod index 8ce466970..07f08aa35 100644 --- a/go.mod +++ b/go.mod @@ -4,18 +4,18 @@ go 1.22.2 require ( github.com/ahmetb/gen-crd-api-reference-docs v0.3.0 - github.com/gardener/gardener v1.94.1 + github.com/gardener/gardener v1.95.2 github.com/go-logr/logr v1.4.1 github.com/onsi/ginkgo/v2 v2.17.1 github.com/onsi/gomega v1.33.0 github.com/spf13/cobra v1.8.0 - golang.org/x/tools v0.20.0 + golang.org/x/tools v0.21.0 k8s.io/api v0.29.4 k8s.io/apimachinery v0.29.4 k8s.io/code-generator v0.29.4 k8s.io/component-base v0.29.4 - k8s.io/utils v0.0.0-20240423183400-0849a56e8f22 - sigs.k8s.io/controller-runtime v0.17.3 + k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 + sigs.k8s.io/controller-runtime v0.17.5 ) require ( @@ -92,20 +92,20 @@ require ( go.uber.org/mock v0.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.22.0 // indirect + golang.org/x/crypto v0.23.0 // indirect golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.19.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 7417fe921..f1d7a8a74 100644 --- a/go.sum +++ b/go.sum @@ -90,8 +90,8 @@ github.com/gardener/cert-management v0.14.2 h1:dlrPblsUIIjMaDPfZyYXvO3OKDkAlHSjb github.com/gardener/cert-management v0.14.2/go.mod h1:dfhuPXJn+yy9OoSSxY/HAMiwzD2IOqoM+UMx16QTkvI= github.com/gardener/etcd-druid v0.22.0 h1:DVe+Zjrb93r9vI1uUiCTMHBffIUoMAKhNzFZNC6hsQ8= github.com/gardener/etcd-druid v0.22.0/go.mod h1:FROhfVKyWBo4krlPe3R6FIhJRmOmijEWBdEeUP0CJjE= -github.com/gardener/gardener v1.94.1 h1:d7iPX4F0z97oc8EABfilV9M4o4hrqbN8c3lBFXyualk= -github.com/gardener/gardener v1.94.1/go.mod h1:DafV6m+tMfAbdye2EeRShvOtRxxixCRd9Y5zy0mPahc= +github.com/gardener/gardener v1.95.2 h1:Y8v4eHXuhilzK9iAZWzIbWOHYv0OJkieipoVwUexkbk= +github.com/gardener/gardener v1.95.2/go.mod h1:dPyPIfT8n77FopQO/z1CXplkBGV5oN4LAQDhr5obOVI= github.com/gardener/hvpa-controller/api v0.15.0 h1:igsalL5Z6kFMn1+Kv1Eq0cRjYW+4oBA1aEY/yDO2QtI= github.com/gardener/hvpa-controller/api v0.15.0/go.mod h1:fqb4wNrQLESDKpm7ppXyCM2Gvx96wRlLL35aH0ge07U= github.com/gardener/machine-controller-manager v0.53.0 h1:g2O0F7nEYZ9LjyPY6Gew8+q0n+rU88deexNq5k8CKks= @@ -361,8 +361,8 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -410,8 +410,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -452,21 +452,21 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -499,8 +499,8 @@ golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= -golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -546,8 +546,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -622,11 +622,11 @@ k8s.io/kubelet v0.29.4/go.mod h1:lAu6Z17pxKwgM+9hsgGkqFjYTOhbc0dnZ6GNnlbjYW0= k8s.io/metrics v0.29.4 h1:06sZ63/Kt9HEb5GP/1y6xbHDz6XkxnHpu949UdXfoXQ= k8s.io/metrics v0.29.4/go.mod h1:ZN9peB0nLTqPZuwQna8ZUrPFJQ0i8QNH4pqRJopS+9c= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20240423183400-0849a56e8f22 h1:ao5hUqGhsqdm+bYbjH/pRkCs0unBGe9UyDahzs9zQzQ= -k8s.io/utils v0.0.0-20240423183400-0849a56e8f22/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk= -sigs.k8s.io/controller-runtime v0.17.3/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= +sigs.k8s.io/controller-runtime v0.17.5 h1:1FI9Lm7NiOOmBsgTV36/s2XrEFXnO2C4sbg/Zme72Rw= +sigs.k8s.io/controller-runtime v0.17.5/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20231015215740-bf15e44028f9 h1:O27fSMHw4u0h+Rj8bNzcZk5jY0iZCO0J8/mCpigpnbw= sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20231015215740-bf15e44028f9/go.mod h1:TF/lVLWS+JNNaVqJuDDictY2hZSXSsIHCx4FClMvqFg= sigs.k8s.io/controller-tools v0.14.0 h1:rnNoCC5wSXlrNoBKKzL70LNJKIQKEzT6lloG6/LF73A= diff --git a/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor b/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/doc.go b/vendor/github.com/gardener/gardener/hack/.ci/doc.go old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/prepare_release b/vendor/github.com/gardener/gardener/hack/.ci/prepare_release old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version b/vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt b/vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/add-license-header.sh b/vendor/github.com/gardener/gardener/hack/add-license-header.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-apidiff.sh b/vendor/github.com/gardener/gardener/hack/check-apidiff.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-charts.sh b/vendor/github.com/gardener/gardener/hack/check-charts.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-generate.sh b/vendor/github.com/gardener/gardener/hack/check-generate.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-imports.sh b/vendor/github.com/gardener/gardener/hack/check-imports.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-license-header.sh b/vendor/github.com/gardener/gardener/hack/check-license-header.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-plutono-dashboards.sh b/vendor/github.com/gardener/gardener/hack/check-plutono-dashboards.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-skaffold-deps-for-binary.sh b/vendor/github.com/gardener/gardener/hack/check-skaffold-deps-for-binary.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-skaffold-deps.sh b/vendor/github.com/gardener/gardener/hack/check-skaffold-deps.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check.sh b/vendor/github.com/gardener/gardener/hack/check.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh b/vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-common.sh b/vendor/github.com/gardener/gardener/hack/ci-common.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-multi-zone.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-multi-zone.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-single-zone.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-ha-single-zone.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration-ha-single-zone.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration-ha-single-zone.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-migration.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-operator.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-operator.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-upgrade.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind-upgrade.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/ci-e2e-kind.sh b/vendor/github.com/gardener/gardener/hack/ci-e2e-kind.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/clean.sh b/vendor/github.com/gardener/gardener/hack/clean.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-admission-plugins.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-admission-plugins.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-api-groups.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-api-groups.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compute-k8s-controllers.sh b/vendor/github.com/gardener/gardener/hack/compute-k8s-controllers.sh old mode 100755 new mode 100644 index fc1ccaa6f..84bcb7b42 --- a/vendor/github.com/gardener/gardener/hack/compute-k8s-controllers.sh +++ b/vendor/github.com/gardener/gardener/hack/compute-k8s-controllers.sh @@ -29,73 +29,73 @@ trap cleanup_output EXIT # Define the path map declare -A path_map=( - ["attachdetach"]="pkg/controller/volume/attachdetach/attach_detach_controller.go" - ["bootstrapsigner"]="pkg/controller/bootstrap/bootstrapsigner.go" - ["cloud-node-lifecycle"]="staging/src/k8s.io/cloud-provider/controllers/nodelifecycle/node_lifecycle_controller.go" - ["clusterrole-aggregation"]="pkg/controller/clusterroleaggregation/clusterroleaggregation_controller.go" - ["cronjob"]="pkg/controller/cronjob/cronjob_controllerv2.go" - ["csrapproving"]="pkg/controller/certificates/approver/sarapprove.go" - ["csrcleaner"]="pkg/controller/certificates/cleaner/cleaner.go" - ["csrsigning"]="pkg/controller/certificates/signer/signer.go" - ["daemonset"]="pkg/controller/daemon/daemon_controller.go" - ["deployment"]="pkg/controller/deployment/deployment_controller.go" - ["disruption"]="pkg/controller/disruption/disruption.go" - ["endpoint"]="pkg/controller/endpoint/endpoints_controller.go" - ["endpointslice"]="pkg/controller/endpointslice/endpointslice_controller.go" - ["endpointslicemirroring"]="pkg/controller/endpointslicemirroring/endpointslicemirroring_controller.go" - ["ephemeral-volume"]="pkg/controller/volume/ephemeral/controller.go" - ["garbagecollector"]="pkg/controller/garbagecollector/garbagecollector.go" - ["horizontalpodautoscaling"]="pkg/controller/podautoscaler/horizontal.go" - ["job"]="pkg/controller/job/job_controller.go" - ["legacy-service-account-token-cleaner"]="pkg/controller/serviceaccount/legacy_serviceaccount_token_cleaner.go" - ["namespace"]="pkg/controller/namespace/namespace_controller.go" - ["nodeipam"]="pkg/controller/nodeipam/node_ipam_controller.go" - ["nodelifecycle"]="pkg/controller/nodelifecycle/node_lifecycle_controller.go" - ["persistentvolume-binder"]="pkg/controller/volume/persistentvolume/pv_controller_base.go" - ["persistentvolume-expander"]="pkg/controller/volume/expand/expand_controller.go" - ["podgc"]="pkg/controller/podgc/gc_controller.go" - ["pv-protection"]="pkg/controller/volume/pvprotection/pv_protection_controller.go" - ["pvc-protection"]="pkg/controller/volume/pvcprotection/pvc_protection_controller.go" - ["replicaset"]="pkg/controller/replicaset/replica_set.go" - ["replicationcontroller"]="pkg/controller/replication/replication_controller.go" - ["resource-claim-controller"]="pkg/controller/resourceclaim/controller.go" - ["resourcequota"]="pkg/controller/resourcequota/resource_quota_controller.go" - ["root-ca-cert-publisher"]="pkg/controller/certificates/rootcacertpublisher/publisher.go" - ["route"]="staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go" - ["service"]="staging/src/k8s.io/cloud-provider/controllers/service/controller.go" - ["service-cidr"]="pkg/controller/servicecidrs/servicecidrs_controller.go" - ["serviceaccount"]="pkg/controller/serviceaccount/serviceaccounts_controller.go" - ["serviceaccount-token"]="pkg/controller/serviceaccount/tokens_controller.go" - ["statefulset"]="pkg/controller/statefulset/stateful_set.go" - ["storage-version-gc"]="pkg/controller/storageversiongc/gc_controller.go" - ["tokencleaner"]="pkg/controller/bootstrap/tokencleaner.go" - ["ttl"]="pkg/controller/ttl/ttl_controller.go" - ["ttl-after-finished"]="pkg/controller/ttlafterfinished/ttlafterfinished_controller.go" + ["persistentvolume-attach-detach-controller"]="pkg/controller/volume/attachdetach/attach_detach_controller.go" + ["bootstrap-signer-controller"]="pkg/controller/bootstrap/bootstrapsigner.go" + ["cloud-node-controller"]="staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go" + ["cloud-node-lifecycle-controller"]="staging/src/k8s.io/cloud-provider/controllers/nodelifecycle/node_lifecycle_controller.go" + ["clusterrole-aggregation-controller"]="pkg/controller/clusterroleaggregation/clusterroleaggregation_controller.go" + ["cronjob-controller"]="pkg/controller/cronjob/cronjob_controllerv2.go" + ["certificatesigningrequest-approving-controller"]="pkg/controller/certificates/approver/sarapprove.go" + ["certificatesigningrequest-cleaner-controller"]="pkg/controller/certificates/cleaner/cleaner.go" + ["certificatesigningrequest-signing-controller"]="pkg/controller/certificates/signer/signer.go" + ["daemonset-controller"]="pkg/controller/daemon/daemon_controller.go" + ["deployment-controller"]="pkg/controller/deployment/deployment_controller.go" + ["disruption-controller"]="pkg/controller/disruption/disruption.go" + ["endpoints-controller"]="pkg/controller/endpoint/endpoints_controller.go" + ["endpointslice-controller"]="pkg/controller/endpointslice/endpointslice_controller.go" + ["endpointslice-mirroring-controller"]="pkg/controller/endpointslicemirroring/endpointslicemirroring_controller.go" + ["ephemeral-volume-controller"]="pkg/controller/volume/ephemeral/controller.go" + ["garbage-collector-controller"]="pkg/controller/garbagecollector/garbagecollector.go" + ["horizontal-pod-autoscaler-controller"]="pkg/controller/podautoscaler/horizontal.go" + ["job-controller"]="pkg/controller/job/job_controller.go" + ["legacy-serviceaccount-token-cleaner-controller"]="pkg/controller/serviceaccount/legacy_serviceaccount_token_cleaner.go" + ["namespace-controller"]="pkg/controller/namespace/namespace_controller.go" + ["node-ipam-controller"]="pkg/controller/nodeipam/node_ipam_controller.go" + ["node-lifecycle-controller"]="pkg/controller/nodelifecycle/node_lifecycle_controller.go" + ["persistentvolume-binder-controller"]="pkg/controller/volume/persistentvolume/pv_controller_base.go" + ["persistentvolume-expander-controller"]="pkg/controller/volume/expand/expand_controller.go" + ["pod-garbage-collector-controller"]="pkg/controller/podgc/gc_controller.go" + ["persistentvolume-protection-controller"]="pkg/controller/volume/pvprotection/pv_protection_controller.go" + ["persistentvolumeclaim-protection-controller"]="pkg/controller/volume/pvcprotection/pvc_protection_controller.go" + ["replicaset-controller"]="pkg/controller/replicaset/replica_set.go" + ["replicationcontroller-controller"]="pkg/controller/replication/replication_controller.go" + ["resourceclaim-controller"]="pkg/controller/resourceclaim/controller.go" + ["resourcequota-controller"]="pkg/controller/resourcequota/resource_quota_controller.go" + ["root-ca-certificate-publisher-controller"]="pkg/controller/certificates/rootcacertpublisher/publisher.go" + ["node-route-controller"]="staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go" + ["service-lb-controller"]="staging/src/k8s.io/cloud-provider/controllers/service/controller.go" + ["service-cidr-controller"]="pkg/controller/servicecidrs/servicecidrs_controller.go" + ["serviceaccount-controller"]="pkg/controller/serviceaccount/serviceaccounts_controller.go" + ["serviceaccount-token-controller"]="pkg/controller/serviceaccount/tokens_controller.go" + ["statefulset-controller"]="pkg/controller/statefulset/stateful_set.go" + ["storageversion-garbage-collector-controller"]="pkg/controller/storageversiongc/gc_controller.go" + ["storage-version-migrator-controller"]="pkg/controller/storageversionmigrator/storageversionmigrator.go" + ["taint-eviction-controller"]="pkg/controller/tainteviction/taint_eviction.go" + ["token-cleaner-controller"]="pkg/controller/bootstrap/tokencleaner.go" + ["ttl-controller"]="pkg/controller/ttl/ttl_controller.go" + ["ttl-after-finished-controller"]="pkg/controller/ttlafterfinished/ttlafterfinished_controller.go" + ["validatingadmissionpolicy-status-controller"]="pkg/controller/validatingadmissionpolicystatus/controller.go" ) for version in "${versions[@]}"; do + if [ "$version" \< "1.28" ]; then + echo "Versions less than 1.28 are not supported." + exit 1 + fi + rm -rf "${out_dir}/kubernetes-${version}" rm -f "${out_dir}/k8s-controllers-${version}.txt" git clone --depth 1 --filter=blob:none --sparse https://github.com/kubernetes/kubernetes -b "release-${version}" "${out_dir}/kubernetes-${version}" pushd "${out_dir}/kubernetes-${version}" > /dev/null - git sparse-checkout set "cmd/kube-controller-manager" "pkg/controller" "staging/src/k8s.io/cloud-provider/controllers" + git sparse-checkout set "cmd/kube-controller-manager" "pkg/controller" "staging/src/k8s.io/cloud-provider" popd > /dev/null - if [ "$version" \< "1.26" ]; then - names=$(grep -o 'controllers\["[^"]*' "${out_dir}/kubernetes-${version}/cmd/kube-controller-manager/app/controllermanager.go" | awk -F '"' '{print $2}') - # This is a special controller which is not initialized normally, see https://github.com/kubernetes/kubernetes/blob/99151c39b7d4595632f7745ba7fb4dea4356f7fd/cmd/kube-controller-manager/app/controllermanager.go#L405-L411 - names+=" serviceaccount-token" - elif [ "$version" \< "1.28" ]; then - names=$(grep -o 'register("[^"]*' "${out_dir}/kubernetes-${version}/cmd/kube-controller-manager/app/controllermanager.go" | awk -F '"' '{print $2}') - # This is a special controller which is not initialized normally, see https://github.com/kubernetes/kubernetes/blob/99151c39b7d4595632f7745ba7fb4dea4356f7fd/cmd/kube-controller-manager/app/controllermanager.go#L405-L411 - names+=" serviceaccount-token" - else - names=$(grep -E 'func KCMControllerAliases\(\) map\[string\]string \{' "${out_dir}/kubernetes-${version}/cmd/kube-controller-manager/names/controller_names.go" -A 200 | awk -F '[" :]+' '/^ \"[a-zA-Z0-9-]+\"/ {print $2}') - fi - + names=$(awk '/const \(/,/\)/' "${out_dir}/kubernetes-${version}/cmd/kube-controller-manager/names/controller_names.go" "${out_dir}/kubernetes-${version}/staging/src/k8s.io/cloud-provider/names/controller_names.go" | sed -n 's/.*"\(.*\)".*/\1/p') + for name in $names; do if [ ! "${path_map[$name]}" ]; then + echo echo "No path mapping found for $name", The controller could have been removed or the path might have changed. echo "Please enhance the map in the script with the path for this controller." exit 1 diff --git a/vendor/github.com/gardener/gardener/hack/download_gardener_source_code.sh b/vendor/github.com/gardener/gardener/hack/download_gardener_source_code.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/format.sh b/vendor/github.com/gardener/gardener/hack/format.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/gardener-down.sh b/vendor/github.com/gardener/gardener/hack/gardener-down.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/gardener-extensions-down.sh b/vendor/github.com/gardener/gardener/hack/gardener-extensions-down.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/gardener-extensions-up.sh b/vendor/github.com/gardener/gardener/hack/gardener-extensions-up.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-controller-registration.sh b/vendor/github.com/gardener/gardener/hack/generate-controller-registration.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-crds.sh b/vendor/github.com/gardener/gardener/hack/generate-crds.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh b/vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-logcheck-symlinks.sh b/vendor/github.com/gardener/gardener/hack/generate-logcheck-symlinks.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh b/vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh deleted file mode 100755 index ed34a04e7..000000000 --- a/vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash -# -# SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors -# -# SPDX-License-Identifier: Apache-2.0 - -set -o errexit - -echo "> Generate monitoring docs" - -CURRENT_DIR=$(readlink -f $(dirname $0)) -PROJECT_ROOT="$(realpath ${CURRENT_DIR}/..)" - -tools="git yq" -for t in $tools; do - if ! which $t &>/dev/null; then - echo "Tool $t not found in PATH" - exit 1 - fi -done - -cat < $PROJECT_ROOT/docs/monitoring/user_alerts.md -# User Alerts -|Alertname|Severity|Type|Description| -|---|---|---|---| -EOF -cat < $PROJECT_ROOT/docs/monitoring/operator_alerts.md -# Operator Alerts -|Alertname|Severity|Type|Description| -|---|---|---|---| -EOF - -pushd $PROJECT_ROOT/pkg/component/observability/monitoring/charts/seed-monitoring/charts/core/charts/prometheus > /dev/null -for file in rules/worker/*.yaml rules/*.yaml; do - cat $file | yq -r ' - .groups | - .[].rules | - map(select(.labels.visibility == "owner" or .labels.visibility == "all")) | - map(select(has("alert"))) | - .[] | - "|" + .alert + "|" + .labels.severity + "|" + .labels.type + "|" + "`" + .annotations.description + "`" + "|"' >> $PROJECT_ROOT/docs/monitoring/user_alerts.md - cat $file | yq -r ' - .groups | - .[].rules | - map(select(.labels.visibility == "operator" or .labels.visibility == "all")) | - map(select(has("alert"))) | - .[] | - "|" + .alert + "|" + .labels.severity + "|" + .labels.type + "|" + "`" + .annotations.description + "`" + "|"' >> $PROJECT_ROOT/docs/monitoring/operator_alerts.md -done -popd > /dev/null diff --git a/vendor/github.com/gardener/gardener/hack/generate-parallel.sh b/vendor/github.com/gardener/gardener/hack/generate-parallel.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-sequential.sh b/vendor/github.com/gardener/gardener/hack/generate-sequential.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate.sh b/vendor/github.com/gardener/gardener/hack/generate.sh old mode 100755 new mode 100644 index 7254d782f..a97c26d60 --- a/vendor/github.com/gardener/gardener/hack/generate.sh +++ b/vendor/github.com/gardener/gardener/hack/generate.sh @@ -6,7 +6,7 @@ set -e -WHAT="protobuf codegen manifests logcheck monitoring-docs" +WHAT="protobuf codegen manifests logcheck" CODEGEN_GROUPS="" MANIFESTS_DIRS="" MODE="" @@ -19,6 +19,7 @@ DEFAULT_MANIFESTS_DIRS=( "pkg" "plugin" "test" + "third_party" ) parse_flags() { @@ -95,11 +96,8 @@ run_target() { logcheck) cd "$REPO_ROOT/$LOGCHECK_DIR" && go generate ./... ;; - monitoring-docs) - $REPO_ROOT/hack/generate-monitoring-docs.sh - ;; *) - printf "ERROR: Unknown target: $target. Available targets are 'protobuf', 'codegen', 'manifests', 'logcheck', 'monitoring-docs'.\n\n" + printf "ERROR: Unknown target: $target. Available targets are 'protobuf', 'codegen', 'manifests', 'logcheck'.\n\n" ;; esac } diff --git a/vendor/github.com/gardener/gardener/hack/get-build-ld-flags.sh b/vendor/github.com/gardener/gardener/hack/get-build-ld-flags.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/hook-me.sh b/vendor/github.com/gardener/gardener/hack/hook-me.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/install.sh b/vendor/github.com/gardener/gardener/hack/install.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/kind-down.sh b/vendor/github.com/gardener/gardener/hack/kind-down.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/kind-extensions-up.sh b/vendor/github.com/gardener/gardener/hack/kind-extensions-up.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/kind-up.sh b/vendor/github.com/gardener/gardener/hack/kind-up.sh old mode 100755 new mode 100644 index ea5960283..35e8c6c15 --- a/vendor/github.com/gardener/gardener/hack/kind-up.sh +++ b/vendor/github.com/gardener/gardener/hack/kind-up.sh @@ -249,7 +249,7 @@ fi # Adjust version of kindest/node image according to the latest supported Kubernetes version in Gardener kind create cluster \ --name "$CLUSTER_NAME" \ - --image "kindest/node:v1.29.2" \ + --image "kindest/node:v1.29.4" \ --config <(helm template $CHART --values "$PATH_CLUSTER_VALUES" $ADDITIONAL_ARGS --set "gardener.repositoryRoot"=$(dirname "$0")/..) # Configure the default StorageClass in the kind cluster diff --git a/vendor/github.com/gardener/gardener/hack/prepare-envtest.sh b/vendor/github.com/gardener/gardener/hack/prepare-envtest.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/start-envtest.sh b/vendor/github.com/gardener/gardener/hack/start-envtest.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-cover-clean.sh b/vendor/github.com/gardener/gardener/hack/test-cover-clean.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-cover.sh b/vendor/github.com/gardener/gardener/hack/test-cover.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-e2e-local.env b/vendor/github.com/gardener/gardener/hack/test-e2e-local.env old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh b/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh old mode 100755 new mode 100644 index 793c2ca73..6c86eb690 --- a/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh +++ b/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh @@ -24,6 +24,11 @@ if [ -n "${CI:-}" -a -n "${ARTIFACTS:-}" ]; then fi fi +local_address="127.0.0.1" +if [[ "${IPFAMILY:-}" == "ipv6" ]]; then + local_address="::1" +fi + # If we are not running the gardener-operator tests then we have to make the shoot domains accessible. if [[ "$1" != "operator" ]]; then seed_name="local" @@ -69,11 +74,11 @@ if [[ "$1" != "operator" ]]; then # The e2e-upd-zone test uses the in-cluster coredns for name resolution and can therefore resolve the api endpoint. continue fi - printf "\n127.0.0.1 api.%s.external.local.gardener.cloud\n127.0.0.1 api.%s.internal.local.gardener.cloud\n" $shoot $shoot >>/etc/hosts + printf "\n$local_address api.%s.external.local.gardener.cloud\n$local_address api.%s.internal.local.gardener.cloud\n" $shoot $shoot >>/etc/hosts done - printf "\n127.0.0.1 gu-local--e2e-rotate.ingress.$seed_name.seed.local.gardener.cloud\n" >>/etc/hosts - printf "\n127.0.0.1 gu-local--e2e-rotate-wl.ingress.$seed_name.seed.local.gardener.cloud\n" >>/etc/hosts - printf "\n127.0.0.1 api.e2e-managedseed.garden.external.local.gardener.cloud\n127.0.0.1 api.e2e-managedseed.garden.internal.local.gardener.cloud\n" >>/etc/hosts + printf "\n$local_address gu-local--e2e-rotate.ingress.$seed_name.seed.local.gardener.cloud\n" >>/etc/hosts + printf "\n$local_address gu-local--e2e-rotate-wl.ingress.$seed_name.seed.local.gardener.cloud\n" >>/etc/hosts + printf "\n$local_address api.e2e-managedseed.garden.external.local.gardener.cloud\n$local_address api.e2e-managedseed.garden.internal.local.gardener.cloud\n" >>/etc/hosts else missing_entries=() @@ -83,8 +88,8 @@ if [[ "$1" != "operator" ]]; then continue fi for ip in internal external; do - if ! grep -q -x "127.0.0.1 api.$shoot.$ip.local.gardener.cloud" /etc/hosts; then - missing_entries+=("127.0.0.1 api.$shoot.$ip.local.gardener.cloud") + if ! grep -q -x "$local_address api.$shoot.$ip.local.gardener.cloud" /etc/hosts; then + missing_entries+=("$local_address api.$shoot.$ip.local.gardener.cloud") fi done done @@ -101,14 +106,14 @@ if [[ "$1" != "operator" ]]; then # If we are running the gardener-operator tests then we have to make the virtual garden domains accessible. else if [ -n "${CI:-}" -a -n "${ARTIFACTS:-}" ]; then - printf "\n127.0.0.1 api.virtual-garden.local.gardener.cloud\n" >>/etc/hosts - printf "\n127.0.0.1 plutono-garden.ingress.runtime-garden.local.gardener.cloud\n" >>/etc/hosts + printf "\n$local_address api.virtual-garden.local.gardener.cloud\n" >>/etc/hosts + printf "\n$local_address plutono-garden.ingress.runtime-garden.local.gardener.cloud\n" >>/etc/hosts else - if ! grep -q -x "127.0.0.1 api.virtual-garden.local.gardener.cloud" /etc/hosts; then + if ! grep -q -x "$local_address api.virtual-garden.local.gardener.cloud" /etc/hosts; then printf "Hostname for the virtual garden cluster is missing in /etc/hosts. To access the virtual garden cluster and run e2e tests, you need to extend your /etc/hosts file.\nPlease refer to https://github.com/gardener/gardener/blob/master/docs/deployment/getting_started_locally.md#accessing-the-shoot-cluster\n\n" exit 1 fi - if ! grep -q -x "127.0.0.1 plutono-garden.ingress.runtime-garden.local.gardener.cloud" /etc/hosts; then + if ! grep -q -x "$local_address plutono-garden.ingress.runtime-garden.local.gardener.cloud" /etc/hosts; then printf "Hostname for the plutono is missing in /etc/hosts. To access the plutono and run e2e tests, you need to extend your /etc/hosts file.\nPlease refer to https://github.com/gardener/gardener/blob/master/docs/deployment/getting_started_locally.md#accessing-the-shoot-cluster\n\n" exit 1 fi diff --git a/vendor/github.com/gardener/gardener/hack/test-integration.env b/vendor/github.com/gardener/gardener/hack/test-integration.env old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-integration.sh b/vendor/github.com/gardener/gardener/hack/test-integration.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-prometheus.sh b/vendor/github.com/gardener/gardener/hack/test-prometheus.sh deleted file mode 100755 index 565d611c7..000000000 --- a/vendor/github.com/gardener/gardener/hack/test-prometheus.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# -# SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors -# -# SPDX-License-Identifier: Apache-2.0 - -set -o errexit -set -o nounset -set -o pipefail - -echo "> Test Prometheus" - -echo "Executing shoot Prometheus alert tests" -pushd "$(dirname $0)/../pkg/component/observability/monitoring/charts/seed-monitoring/charts/core/charts/prometheus" > /dev/null -promtool test rules rules-tests/*test.yaml -popd > /dev/null diff --git a/vendor/github.com/gardener/gardener/hack/test.sh b/vendor/github.com/gardener/gardener/hack/test.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/tools.go b/vendor/github.com/gardener/gardener/hack/tools.go old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/tools.mk b/vendor/github.com/gardener/gardener/hack/tools.mk old mode 100755 new mode 100644 index fa1658fcb..7d48c3021 --- a/vendor/github.com/gardener/gardener/hack/tools.mk +++ b/vendor/github.com/gardener/gardener/hack/tools.mk @@ -50,7 +50,7 @@ VGOPATH := $(TOOLS_BIN_DIR)/vgopath # default tool versions # renovate: datasource=github-releases depName=golangci/golangci-lint -GOLANGCI_LINT_VERSION ?= v1.57.2 +GOLANGCI_LINT_VERSION ?= v1.58.1 # renovate: datasource=github-releases depName=joelanford/go-apidiff GO_APIDIFF_VERSION ?= v0.8.2 # renovate: datasource=github-releases depName=google/addlicense @@ -61,19 +61,19 @@ GO_VULN_CHECK_VERSION ?= latest # renovate: datasource=github-releases depName=helm/helm HELM_VERSION ?= v3.14.4 # renovate: datasource=github-releases depName=kubernetes-sigs/kind -KIND_VERSION ?= v0.22.0 +KIND_VERSION ?= v0.23.0 # renovate: datasource=github-releases depName=kubernetes/kubernetes KUBECTL_VERSION ?= v1.30.0 # renovate: datasource=github-releases depName=kubernetes-sigs/kustomize KUSTOMIZE_VERSION ?= v5.3.0 # renovate: datasource=github-releases depName=prometheus/prometheus -PROMTOOL_VERSION ?= 2.51.2 +PROMTOOL_VERSION ?= 2.52.0 # renovate: datasource=github-releases depName=protocolbuffers/protobuf PROTOC_VERSION ?= 26.1 # renovate: datasource=github-releases depName=GoogleContainerTools/skaffold -SKAFFOLD_VERSION ?= v2.11.1 +SKAFFOLD_VERSION ?= v2.12.0 # renovate: datasource=github-releases depName=mikefarah/yq -YQ_VERSION ?= v4.43.1 +YQ_VERSION ?= v4.44.1 # renovate: datasource=github-releases depName=ironcore-dev/vgopath VGOPATH_VERSION ?= v0.1.5 diff --git a/vendor/github.com/gardener/gardener/hack/update-codegen.sh b/vendor/github.com/gardener/gardener/hack/update-codegen.sh old mode 100755 new mode 100644 index 367bbca02..5c6c322f0 --- a/vendor/github.com/gardener/gardener/hack/update-codegen.sh +++ b/vendor/github.com/gardener/gardener/hack/update-codegen.sh @@ -19,6 +19,7 @@ AVAILABLE_CODEGEN_OPTIONS=( "seedmanagement_groups" "operations_groups" "settings_groups" + "security_groups" "operatorconfig_groups" "controllermanager_groups" "admissioncontroller_groups" @@ -184,6 +185,29 @@ settings_groups() { } export -f settings_groups +# security.gardener.cloud APIs + +security_groups() { + echo "Generating API groups for pkg/apis/security" + + bash "${CODE_GEN_DIR}"/generate-internal-groups.sh \ + client,deepcopy,defaulter,informer,lister \ + github.com/gardener/gardener/pkg/client/security \ + "" \ + github.com/gardener/gardener/pkg/apis \ + "security:v1alpha1" \ + -h "${PROJECT_ROOT}/hack/LICENSE_BOILERPLATE.txt" + + bash "${CODE_GEN_DIR}"/generate-internal-groups.sh \ + deepcopy,defaulter,conversion \ + github.com/gardener/gardener/pkg/client/security \ + github.com/gardener/gardener/pkg/apis \ + github.com/gardener/gardener/pkg/apis \ + "security:v1alpha1" \ + -h "${PROJECT_ROOT}/hack/LICENSE_BOILERPLATE.txt" +} +export -f security_groups + # operations.gardener.cloud APIs operations_groups() { @@ -517,6 +541,7 @@ openapi_definitions() { --input-dirs=github.com/gardener/gardener/pkg/apis/core/v1beta1 \ --input-dirs=github.com/gardener/gardener/pkg/apis/settings/v1alpha1 \ --input-dirs=github.com/gardener/gardener/pkg/apis/seedmanagement/v1alpha1 \ + --input-dirs=github.com/gardener/gardener/pkg/apis/security/v1alpha1 \ --input-dirs=github.com/gardener/gardener/pkg/apis/operations/v1alpha1 \ --input-dirs=k8s.io/api/core/v1 \ --input-dirs=k8s.io/api/rbac/v1 \ diff --git a/vendor/github.com/gardener/gardener/hack/update-protobuf.sh b/vendor/github.com/gardener/gardener/hack/update-protobuf.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/update-skaffold-deps.sh b/vendor/github.com/gardener/gardener/hack/update-skaffold-deps.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/vgopath-setup.sh b/vendor/github.com/gardener/gardener/hack/vgopath-setup.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_project.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_project.go index 89108820c..5c85ce560 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_project.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_project.go @@ -56,6 +56,8 @@ type ProjectSpec struct { Namespace *string // Tolerations contains the default tolerations and a list for allowed taints on seed clusters. Tolerations *ProjectTolerations + // DualApprovalForDeletion contains configuration for the dual approval concept for resource deletion. + DualApprovalForDeletion []DualApprovalForDeletion } // ProjectStatus holds the most recently observed status of the project. @@ -99,6 +101,16 @@ type Toleration struct { Value *string } +// DualApprovalForDeletion contains configuration for the dual approval concept for resource deletion. +type DualApprovalForDeletion struct { + // Resource is the name of the resource this applies to. + Resource string + // Selector is the label selector for the resources. + Selector metav1.LabelSelector + // IncludeServiceAccounts specifies whether the concept also applies when deletion is triggered by ServiceAccounts. + IncludeServiceAccounts *bool +} + const ( // ProjectMemberAdmin is a const for a role that provides full admin access. ProjectMemberAdmin = "admin" diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go index f8bdf6f1d..e4274bc8c 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go @@ -958,11 +958,15 @@ type KubeletConfigReserved struct { type SwapBehavior string const ( + // NoSwap is a constant for the kubelet's swap behavior restricting Kubernetes workloads to not use swap. + // Only available for Kubernetes versions >= v1.30. + NoSwap SwapBehavior = "NoSwap" // LimitedSwap is a constant for the kubelet's swap behavior limitting the amount of swap usable for Kubernetes workloads. Workloads on the node not managed by Kubernetes can still swap. // - cgroupsv1 host: Kubernetes workloads can use any combination of memory and swap, up to the pod's memory limit // - cgroupsv2 host: swap is managed independently from memory. Kubernetes workloads cannot use swap memory. LimitedSwap SwapBehavior = "LimitedSwap" // UnlimitedSwap is a constant for the kubelet's swap behavior enabling Kubernetes workloads to use as much swap memory as required, up to the system limit (not limited by pod or container memory limits). + // Only available for Kubernetes versions < v1.30. UnlimitedSwap SwapBehavior = "UnlimitedSwap" ) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go index fd22b1dd2..70511f024 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go @@ -186,9 +186,6 @@ const ( // StatefulSetNameVali is a constant for the name of a Kubernetes stateful set object that contains // the vali pod. StatefulSetNameVali = "vali" - // StatefulSetNamePrometheus is a constant for the name of a Kubernetes stateful set object that contains - // the prometheus pod. - StatefulSetNamePrometheus = "prometheus" // GardenerPurpose is a constant for the key in a label describing the purpose of the respective object. GardenerPurpose = "gardener.cloud/purpose" @@ -393,6 +390,12 @@ const ( // cluster kubeconfig of a gardenlet indicating that it should be renewed. KubeconfigSecretOperationRenew = "renew" + // ConfirmationDeletion is an annotation on a Shoot, Project, and ShootState resources whose value must be set to + // "true" in order to allow deleting the resource (if the annotation is not set any DELETE request will be denied). + ConfirmationDeletion = "confirmation.gardener.cloud/deletion" + // DeletionConfirmedBy is an annotation on a resource whose value is the subject which confirmed the deletion. + DeletionConfirmedBy = "deletion.gardener.cloud/confirmed-by" + // SeedResourceManagerClass is the resource-class managed by the Gardener-Resource-Manager // instance in the garden namespace on the seeds. SeedResourceManagerClass = "seed" @@ -410,6 +413,9 @@ const ( // LabelExtensionPrefix is used to prefix extension specific labels. LabelExtensionPrefix = "extensions.gardener.cloud/" // LabelExtensionConfiguration is used to identify the provider's configuration which will be added to Gardener configuration + // Deprecated: This field will be removed in a future version. Migrate to the new approach, for more details see + // https://github.com/gardener/gardener/blob/master/docs/extensions/logging-and-monitoring.md. + // TODO(rfranzke): Remove this constant after v1.100 has been released. LabelExtensionConfiguration = LabelExtensionPrefix + "configuration" // LabelLogging is a constant for a label for logging stack configurations LabelLogging = "logging" @@ -686,8 +692,14 @@ const ( // FluentBitConfigMapParser is a constant for the Fluent Bit ConfigMap's section regarding Parsers for common container types FluentBitConfigMapParser = "parsers.conf" // PrometheusConfigMapAlertingRules is a constant for the Prometheus alerting rules tag in provider-specific monitoring configuration + // Deprecated: This field will be removed in a future version. Migrate to the new approach, for more details see + // https://github.com/gardener/gardener/blob/master/docs/extensions/logging-and-monitoring.md#plutono-dashboards. + // TODO(rfranzke): Remove this constant after v1.100 has been released. PrometheusConfigMapAlertingRules = "alerting_rules" // PrometheusConfigMapScrapeConfig is a constant for the Prometheus scrape config tag in provider-specific monitoring configuration + // Deprecated: This field will be removed in a future version. Migrate to the new approach, for more details see + // https://github.com/gardener/gardener/blob/master/docs/extensions/logging-and-monitoring.md#plutono-dashboards. + // TODO(rfranzke): Remove this constant after v1.100 has been released. PrometheusConfigMapScrapeConfig = "scrape_config" // PlutonoConfigMapUserDashboard is a constant for the Plutono user dashboard tag in provider-specific monitoring configuration // Deprecated: This field will be removed in a future version. Migrate to the new approach, for more details see diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go index 01859b869..751839f72 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go @@ -1413,10 +1413,38 @@ func (m *DeploymentRef) XXX_DiscardUnknown() { var xxx_messageInfo_DeploymentRef proto.InternalMessageInfo +func (m *DualApprovalForDeletion) Reset() { *m = DualApprovalForDeletion{} } +func (*DualApprovalForDeletion) ProtoMessage() {} +func (*DualApprovalForDeletion) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{49} +} +func (m *DualApprovalForDeletion) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DualApprovalForDeletion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DualApprovalForDeletion) XXX_Merge(src proto.Message) { + xxx_messageInfo_DualApprovalForDeletion.Merge(m, src) +} +func (m *DualApprovalForDeletion) XXX_Size() int { + return m.Size() +} +func (m *DualApprovalForDeletion) XXX_DiscardUnknown() { + xxx_messageInfo_DualApprovalForDeletion.DiscardUnknown(m) +} + +var xxx_messageInfo_DualApprovalForDeletion proto.InternalMessageInfo + func (m *ETCDEncryptionKeyRotation) Reset() { *m = ETCDEncryptionKeyRotation{} } func (*ETCDEncryptionKeyRotation) ProtoMessage() {} func (*ETCDEncryptionKeyRotation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{49} + return fileDescriptor_ca37af0df9a5bbd2, []int{50} } func (m *ETCDEncryptionKeyRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1444,7 +1472,7 @@ var xxx_messageInfo_ETCDEncryptionKeyRotation proto.InternalMessageInfo func (m *EncryptionConfig) Reset() { *m = EncryptionConfig{} } func (*EncryptionConfig) ProtoMessage() {} func (*EncryptionConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{50} + return fileDescriptor_ca37af0df9a5bbd2, []int{51} } func (m *EncryptionConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1472,7 +1500,7 @@ var xxx_messageInfo_EncryptionConfig proto.InternalMessageInfo func (m *ExpirableVersion) Reset() { *m = ExpirableVersion{} } func (*ExpirableVersion) ProtoMessage() {} func (*ExpirableVersion) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{51} + return fileDescriptor_ca37af0df9a5bbd2, []int{52} } func (m *ExpirableVersion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1500,7 +1528,7 @@ var xxx_messageInfo_ExpirableVersion proto.InternalMessageInfo func (m *ExposureClass) Reset() { *m = ExposureClass{} } func (*ExposureClass) ProtoMessage() {} func (*ExposureClass) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{52} + return fileDescriptor_ca37af0df9a5bbd2, []int{53} } func (m *ExposureClass) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1528,7 +1556,7 @@ var xxx_messageInfo_ExposureClass proto.InternalMessageInfo func (m *ExposureClassList) Reset() { *m = ExposureClassList{} } func (*ExposureClassList) ProtoMessage() {} func (*ExposureClassList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{53} + return fileDescriptor_ca37af0df9a5bbd2, []int{54} } func (m *ExposureClassList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1556,7 +1584,7 @@ var xxx_messageInfo_ExposureClassList proto.InternalMessageInfo func (m *ExposureClassScheduling) Reset() { *m = ExposureClassScheduling{} } func (*ExposureClassScheduling) ProtoMessage() {} func (*ExposureClassScheduling) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{54} + return fileDescriptor_ca37af0df9a5bbd2, []int{55} } func (m *ExposureClassScheduling) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1584,7 +1612,7 @@ var xxx_messageInfo_ExposureClassScheduling proto.InternalMessageInfo func (m *Extension) Reset() { *m = Extension{} } func (*Extension) ProtoMessage() {} func (*Extension) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{55} + return fileDescriptor_ca37af0df9a5bbd2, []int{56} } func (m *Extension) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1612,7 +1640,7 @@ var xxx_messageInfo_Extension proto.InternalMessageInfo func (m *ExtensionResourceState) Reset() { *m = ExtensionResourceState{} } func (*ExtensionResourceState) ProtoMessage() {} func (*ExtensionResourceState) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{56} + return fileDescriptor_ca37af0df9a5bbd2, []int{57} } func (m *ExtensionResourceState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1640,7 +1668,7 @@ var xxx_messageInfo_ExtensionResourceState proto.InternalMessageInfo func (m *FailureTolerance) Reset() { *m = FailureTolerance{} } func (*FailureTolerance) ProtoMessage() {} func (*FailureTolerance) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{57} + return fileDescriptor_ca37af0df9a5bbd2, []int{58} } func (m *FailureTolerance) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1668,7 +1696,7 @@ var xxx_messageInfo_FailureTolerance proto.InternalMessageInfo func (m *Gardener) Reset() { *m = Gardener{} } func (*Gardener) ProtoMessage() {} func (*Gardener) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{58} + return fileDescriptor_ca37af0df9a5bbd2, []int{59} } func (m *Gardener) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1696,7 +1724,7 @@ var xxx_messageInfo_Gardener proto.InternalMessageInfo func (m *GardenerResourceData) Reset() { *m = GardenerResourceData{} } func (*GardenerResourceData) ProtoMessage() {} func (*GardenerResourceData) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{59} + return fileDescriptor_ca37af0df9a5bbd2, []int{60} } func (m *GardenerResourceData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1724,7 +1752,7 @@ var xxx_messageInfo_GardenerResourceData proto.InternalMessageInfo func (m *Hibernation) Reset() { *m = Hibernation{} } func (*Hibernation) ProtoMessage() {} func (*Hibernation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{60} + return fileDescriptor_ca37af0df9a5bbd2, []int{61} } func (m *Hibernation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1752,7 +1780,7 @@ var xxx_messageInfo_Hibernation proto.InternalMessageInfo func (m *HibernationSchedule) Reset() { *m = HibernationSchedule{} } func (*HibernationSchedule) ProtoMessage() {} func (*HibernationSchedule) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{61} + return fileDescriptor_ca37af0df9a5bbd2, []int{62} } func (m *HibernationSchedule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1780,7 +1808,7 @@ var xxx_messageInfo_HibernationSchedule proto.InternalMessageInfo func (m *HighAvailability) Reset() { *m = HighAvailability{} } func (*HighAvailability) ProtoMessage() {} func (*HighAvailability) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{62} + return fileDescriptor_ca37af0df9a5bbd2, []int{63} } func (m *HighAvailability) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1808,7 +1836,7 @@ var xxx_messageInfo_HighAvailability proto.InternalMessageInfo func (m *HorizontalPodAutoscalerConfig) Reset() { *m = HorizontalPodAutoscalerConfig{} } func (*HorizontalPodAutoscalerConfig) ProtoMessage() {} func (*HorizontalPodAutoscalerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{63} + return fileDescriptor_ca37af0df9a5bbd2, []int{64} } func (m *HorizontalPodAutoscalerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1836,7 +1864,7 @@ var xxx_messageInfo_HorizontalPodAutoscalerConfig proto.InternalMessageInfo func (m *Ingress) Reset() { *m = Ingress{} } func (*Ingress) ProtoMessage() {} func (*Ingress) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{64} + return fileDescriptor_ca37af0df9a5bbd2, []int{65} } func (m *Ingress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1864,7 +1892,7 @@ var xxx_messageInfo_Ingress proto.InternalMessageInfo func (m *IngressController) Reset() { *m = IngressController{} } func (*IngressController) ProtoMessage() {} func (*IngressController) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{65} + return fileDescriptor_ca37af0df9a5bbd2, []int{66} } func (m *IngressController) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1892,7 +1920,7 @@ var xxx_messageInfo_IngressController proto.InternalMessageInfo func (m *InternalSecret) Reset() { *m = InternalSecret{} } func (*InternalSecret) ProtoMessage() {} func (*InternalSecret) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{66} + return fileDescriptor_ca37af0df9a5bbd2, []int{67} } func (m *InternalSecret) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1920,7 +1948,7 @@ var xxx_messageInfo_InternalSecret proto.InternalMessageInfo func (m *InternalSecretList) Reset() { *m = InternalSecretList{} } func (*InternalSecretList) ProtoMessage() {} func (*InternalSecretList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{67} + return fileDescriptor_ca37af0df9a5bbd2, []int{68} } func (m *InternalSecretList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1948,7 +1976,7 @@ var xxx_messageInfo_InternalSecretList proto.InternalMessageInfo func (m *KubeAPIServerConfig) Reset() { *m = KubeAPIServerConfig{} } func (*KubeAPIServerConfig) ProtoMessage() {} func (*KubeAPIServerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{68} + return fileDescriptor_ca37af0df9a5bbd2, []int{69} } func (m *KubeAPIServerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1976,7 +2004,7 @@ var xxx_messageInfo_KubeAPIServerConfig proto.InternalMessageInfo func (m *KubeControllerManagerConfig) Reset() { *m = KubeControllerManagerConfig{} } func (*KubeControllerManagerConfig) ProtoMessage() {} func (*KubeControllerManagerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{69} + return fileDescriptor_ca37af0df9a5bbd2, []int{70} } func (m *KubeControllerManagerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2004,7 +2032,7 @@ var xxx_messageInfo_KubeControllerManagerConfig proto.InternalMessageInfo func (m *KubeProxyConfig) Reset() { *m = KubeProxyConfig{} } func (*KubeProxyConfig) ProtoMessage() {} func (*KubeProxyConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{70} + return fileDescriptor_ca37af0df9a5bbd2, []int{71} } func (m *KubeProxyConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2032,7 +2060,7 @@ var xxx_messageInfo_KubeProxyConfig proto.InternalMessageInfo func (m *KubeSchedulerConfig) Reset() { *m = KubeSchedulerConfig{} } func (*KubeSchedulerConfig) ProtoMessage() {} func (*KubeSchedulerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{71} + return fileDescriptor_ca37af0df9a5bbd2, []int{72} } func (m *KubeSchedulerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2060,7 +2088,7 @@ var xxx_messageInfo_KubeSchedulerConfig proto.InternalMessageInfo func (m *KubeletConfig) Reset() { *m = KubeletConfig{} } func (*KubeletConfig) ProtoMessage() {} func (*KubeletConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{72} + return fileDescriptor_ca37af0df9a5bbd2, []int{73} } func (m *KubeletConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2088,7 +2116,7 @@ var xxx_messageInfo_KubeletConfig proto.InternalMessageInfo func (m *KubeletConfigEviction) Reset() { *m = KubeletConfigEviction{} } func (*KubeletConfigEviction) ProtoMessage() {} func (*KubeletConfigEviction) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{73} + return fileDescriptor_ca37af0df9a5bbd2, []int{74} } func (m *KubeletConfigEviction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2116,7 +2144,7 @@ var xxx_messageInfo_KubeletConfigEviction proto.InternalMessageInfo func (m *KubeletConfigEvictionMinimumReclaim) Reset() { *m = KubeletConfigEvictionMinimumReclaim{} } func (*KubeletConfigEvictionMinimumReclaim) ProtoMessage() {} func (*KubeletConfigEvictionMinimumReclaim) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{74} + return fileDescriptor_ca37af0df9a5bbd2, []int{75} } func (m *KubeletConfigEvictionMinimumReclaim) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2144,7 +2172,7 @@ var xxx_messageInfo_KubeletConfigEvictionMinimumReclaim proto.InternalMessageInf func (m *KubeletConfigEvictionSoftGracePeriod) Reset() { *m = KubeletConfigEvictionSoftGracePeriod{} } func (*KubeletConfigEvictionSoftGracePeriod) ProtoMessage() {} func (*KubeletConfigEvictionSoftGracePeriod) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{75} + return fileDescriptor_ca37af0df9a5bbd2, []int{76} } func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2172,7 +2200,7 @@ var xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod proto.InternalMessageIn func (m *KubeletConfigReserved) Reset() { *m = KubeletConfigReserved{} } func (*KubeletConfigReserved) ProtoMessage() {} func (*KubeletConfigReserved) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{76} + return fileDescriptor_ca37af0df9a5bbd2, []int{77} } func (m *KubeletConfigReserved) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2200,7 +2228,7 @@ var xxx_messageInfo_KubeletConfigReserved proto.InternalMessageInfo func (m *Kubernetes) Reset() { *m = Kubernetes{} } func (*Kubernetes) ProtoMessage() {} func (*Kubernetes) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{77} + return fileDescriptor_ca37af0df9a5bbd2, []int{78} } func (m *Kubernetes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2228,7 +2256,7 @@ var xxx_messageInfo_Kubernetes proto.InternalMessageInfo func (m *KubernetesConfig) Reset() { *m = KubernetesConfig{} } func (*KubernetesConfig) ProtoMessage() {} func (*KubernetesConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{78} + return fileDescriptor_ca37af0df9a5bbd2, []int{79} } func (m *KubernetesConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2256,7 +2284,7 @@ var xxx_messageInfo_KubernetesConfig proto.InternalMessageInfo func (m *KubernetesDashboard) Reset() { *m = KubernetesDashboard{} } func (*KubernetesDashboard) ProtoMessage() {} func (*KubernetesDashboard) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{79} + return fileDescriptor_ca37af0df9a5bbd2, []int{80} } func (m *KubernetesDashboard) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2284,7 +2312,7 @@ var xxx_messageInfo_KubernetesDashboard proto.InternalMessageInfo func (m *KubernetesSettings) Reset() { *m = KubernetesSettings{} } func (*KubernetesSettings) ProtoMessage() {} func (*KubernetesSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{80} + return fileDescriptor_ca37af0df9a5bbd2, []int{81} } func (m *KubernetesSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2312,7 +2340,7 @@ var xxx_messageInfo_KubernetesSettings proto.InternalMessageInfo func (m *LastError) Reset() { *m = LastError{} } func (*LastError) ProtoMessage() {} func (*LastError) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{81} + return fileDescriptor_ca37af0df9a5bbd2, []int{82} } func (m *LastError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2340,7 +2368,7 @@ var xxx_messageInfo_LastError proto.InternalMessageInfo func (m *LastMaintenance) Reset() { *m = LastMaintenance{} } func (*LastMaintenance) ProtoMessage() {} func (*LastMaintenance) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{82} + return fileDescriptor_ca37af0df9a5bbd2, []int{83} } func (m *LastMaintenance) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2368,7 +2396,7 @@ var xxx_messageInfo_LastMaintenance proto.InternalMessageInfo func (m *LastOperation) Reset() { *m = LastOperation{} } func (*LastOperation) ProtoMessage() {} func (*LastOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{83} + return fileDescriptor_ca37af0df9a5bbd2, []int{84} } func (m *LastOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2396,7 +2424,7 @@ var xxx_messageInfo_LastOperation proto.InternalMessageInfo func (m *Machine) Reset() { *m = Machine{} } func (*Machine) ProtoMessage() {} func (*Machine) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{84} + return fileDescriptor_ca37af0df9a5bbd2, []int{85} } func (m *Machine) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2424,7 +2452,7 @@ var xxx_messageInfo_Machine proto.InternalMessageInfo func (m *MachineControllerManagerSettings) Reset() { *m = MachineControllerManagerSettings{} } func (*MachineControllerManagerSettings) ProtoMessage() {} func (*MachineControllerManagerSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{85} + return fileDescriptor_ca37af0df9a5bbd2, []int{86} } func (m *MachineControllerManagerSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2452,7 +2480,7 @@ var xxx_messageInfo_MachineControllerManagerSettings proto.InternalMessageInfo func (m *MachineImage) Reset() { *m = MachineImage{} } func (*MachineImage) ProtoMessage() {} func (*MachineImage) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{86} + return fileDescriptor_ca37af0df9a5bbd2, []int{87} } func (m *MachineImage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2480,7 +2508,7 @@ var xxx_messageInfo_MachineImage proto.InternalMessageInfo func (m *MachineImageVersion) Reset() { *m = MachineImageVersion{} } func (*MachineImageVersion) ProtoMessage() {} func (*MachineImageVersion) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{87} + return fileDescriptor_ca37af0df9a5bbd2, []int{88} } func (m *MachineImageVersion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2508,7 +2536,7 @@ var xxx_messageInfo_MachineImageVersion proto.InternalMessageInfo func (m *MachineType) Reset() { *m = MachineType{} } func (*MachineType) ProtoMessage() {} func (*MachineType) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{88} + return fileDescriptor_ca37af0df9a5bbd2, []int{89} } func (m *MachineType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2536,7 +2564,7 @@ var xxx_messageInfo_MachineType proto.InternalMessageInfo func (m *MachineTypeStorage) Reset() { *m = MachineTypeStorage{} } func (*MachineTypeStorage) ProtoMessage() {} func (*MachineTypeStorage) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{89} + return fileDescriptor_ca37af0df9a5bbd2, []int{90} } func (m *MachineTypeStorage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2564,7 +2592,7 @@ var xxx_messageInfo_MachineTypeStorage proto.InternalMessageInfo func (m *Maintenance) Reset() { *m = Maintenance{} } func (*Maintenance) ProtoMessage() {} func (*Maintenance) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{90} + return fileDescriptor_ca37af0df9a5bbd2, []int{91} } func (m *Maintenance) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2592,7 +2620,7 @@ var xxx_messageInfo_Maintenance proto.InternalMessageInfo func (m *MaintenanceAutoUpdate) Reset() { *m = MaintenanceAutoUpdate{} } func (*MaintenanceAutoUpdate) ProtoMessage() {} func (*MaintenanceAutoUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{91} + return fileDescriptor_ca37af0df9a5bbd2, []int{92} } func (m *MaintenanceAutoUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2620,7 +2648,7 @@ var xxx_messageInfo_MaintenanceAutoUpdate proto.InternalMessageInfo func (m *MaintenanceTimeWindow) Reset() { *m = MaintenanceTimeWindow{} } func (*MaintenanceTimeWindow) ProtoMessage() {} func (*MaintenanceTimeWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{92} + return fileDescriptor_ca37af0df9a5bbd2, []int{93} } func (m *MaintenanceTimeWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2648,7 +2676,7 @@ var xxx_messageInfo_MaintenanceTimeWindow proto.InternalMessageInfo func (m *MemorySwapConfiguration) Reset() { *m = MemorySwapConfiguration{} } func (*MemorySwapConfiguration) ProtoMessage() {} func (*MemorySwapConfiguration) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{93} + return fileDescriptor_ca37af0df9a5bbd2, []int{94} } func (m *MemorySwapConfiguration) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2676,7 +2704,7 @@ var xxx_messageInfo_MemorySwapConfiguration proto.InternalMessageInfo func (m *Monitoring) Reset() { *m = Monitoring{} } func (*Monitoring) ProtoMessage() {} func (*Monitoring) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{94} + return fileDescriptor_ca37af0df9a5bbd2, []int{95} } func (m *Monitoring) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2704,7 +2732,7 @@ var xxx_messageInfo_Monitoring proto.InternalMessageInfo func (m *NamedResourceReference) Reset() { *m = NamedResourceReference{} } func (*NamedResourceReference) ProtoMessage() {} func (*NamedResourceReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{95} + return fileDescriptor_ca37af0df9a5bbd2, []int{96} } func (m *NamedResourceReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2732,7 +2760,7 @@ var xxx_messageInfo_NamedResourceReference proto.InternalMessageInfo func (m *NamespacedCloudProfile) Reset() { *m = NamespacedCloudProfile{} } func (*NamespacedCloudProfile) ProtoMessage() {} func (*NamespacedCloudProfile) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{96} + return fileDescriptor_ca37af0df9a5bbd2, []int{97} } func (m *NamespacedCloudProfile) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2760,7 +2788,7 @@ var xxx_messageInfo_NamespacedCloudProfile proto.InternalMessageInfo func (m *NamespacedCloudProfileList) Reset() { *m = NamespacedCloudProfileList{} } func (*NamespacedCloudProfileList) ProtoMessage() {} func (*NamespacedCloudProfileList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{97} + return fileDescriptor_ca37af0df9a5bbd2, []int{98} } func (m *NamespacedCloudProfileList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2788,7 +2816,7 @@ var xxx_messageInfo_NamespacedCloudProfileList proto.InternalMessageInfo func (m *NamespacedCloudProfileSpec) Reset() { *m = NamespacedCloudProfileSpec{} } func (*NamespacedCloudProfileSpec) ProtoMessage() {} func (*NamespacedCloudProfileSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{98} + return fileDescriptor_ca37af0df9a5bbd2, []int{99} } func (m *NamespacedCloudProfileSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2816,7 +2844,7 @@ var xxx_messageInfo_NamespacedCloudProfileSpec proto.InternalMessageInfo func (m *NamespacedCloudProfileStatus) Reset() { *m = NamespacedCloudProfileStatus{} } func (*NamespacedCloudProfileStatus) ProtoMessage() {} func (*NamespacedCloudProfileStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{99} + return fileDescriptor_ca37af0df9a5bbd2, []int{100} } func (m *NamespacedCloudProfileStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2844,7 +2872,7 @@ var xxx_messageInfo_NamespacedCloudProfileStatus proto.InternalMessageInfo func (m *Networking) Reset() { *m = Networking{} } func (*Networking) ProtoMessage() {} func (*Networking) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{100} + return fileDescriptor_ca37af0df9a5bbd2, []int{101} } func (m *Networking) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2872,7 +2900,7 @@ var xxx_messageInfo_Networking proto.InternalMessageInfo func (m *NginxIngress) Reset() { *m = NginxIngress{} } func (*NginxIngress) ProtoMessage() {} func (*NginxIngress) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{101} + return fileDescriptor_ca37af0df9a5bbd2, []int{102} } func (m *NginxIngress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2900,7 +2928,7 @@ var xxx_messageInfo_NginxIngress proto.InternalMessageInfo func (m *NodeLocalDNS) Reset() { *m = NodeLocalDNS{} } func (*NodeLocalDNS) ProtoMessage() {} func (*NodeLocalDNS) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{102} + return fileDescriptor_ca37af0df9a5bbd2, []int{103} } func (m *NodeLocalDNS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2928,7 +2956,7 @@ var xxx_messageInfo_NodeLocalDNS proto.InternalMessageInfo func (m *OIDCConfig) Reset() { *m = OIDCConfig{} } func (*OIDCConfig) ProtoMessage() {} func (*OIDCConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{103} + return fileDescriptor_ca37af0df9a5bbd2, []int{104} } func (m *OIDCConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2956,7 +2984,7 @@ var xxx_messageInfo_OIDCConfig proto.InternalMessageInfo func (m *ObservabilityRotation) Reset() { *m = ObservabilityRotation{} } func (*ObservabilityRotation) ProtoMessage() {} func (*ObservabilityRotation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{104} + return fileDescriptor_ca37af0df9a5bbd2, []int{105} } func (m *ObservabilityRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2984,7 +3012,7 @@ var xxx_messageInfo_ObservabilityRotation proto.InternalMessageInfo func (m *OpenIDConnectClientAuthentication) Reset() { *m = OpenIDConnectClientAuthentication{} } func (*OpenIDConnectClientAuthentication) ProtoMessage() {} func (*OpenIDConnectClientAuthentication) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{105} + return fileDescriptor_ca37af0df9a5bbd2, []int{106} } func (m *OpenIDConnectClientAuthentication) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3012,7 +3040,7 @@ var xxx_messageInfo_OpenIDConnectClientAuthentication proto.InternalMessageInfo func (m *Project) Reset() { *m = Project{} } func (*Project) ProtoMessage() {} func (*Project) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{106} + return fileDescriptor_ca37af0df9a5bbd2, []int{107} } func (m *Project) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3040,7 +3068,7 @@ var xxx_messageInfo_Project proto.InternalMessageInfo func (m *ProjectList) Reset() { *m = ProjectList{} } func (*ProjectList) ProtoMessage() {} func (*ProjectList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{107} + return fileDescriptor_ca37af0df9a5bbd2, []int{108} } func (m *ProjectList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3068,7 +3096,7 @@ var xxx_messageInfo_ProjectList proto.InternalMessageInfo func (m *ProjectMember) Reset() { *m = ProjectMember{} } func (*ProjectMember) ProtoMessage() {} func (*ProjectMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{108} + return fileDescriptor_ca37af0df9a5bbd2, []int{109} } func (m *ProjectMember) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3096,7 +3124,7 @@ var xxx_messageInfo_ProjectMember proto.InternalMessageInfo func (m *ProjectSpec) Reset() { *m = ProjectSpec{} } func (*ProjectSpec) ProtoMessage() {} func (*ProjectSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{109} + return fileDescriptor_ca37af0df9a5bbd2, []int{110} } func (m *ProjectSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3124,7 +3152,7 @@ var xxx_messageInfo_ProjectSpec proto.InternalMessageInfo func (m *ProjectStatus) Reset() { *m = ProjectStatus{} } func (*ProjectStatus) ProtoMessage() {} func (*ProjectStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{110} + return fileDescriptor_ca37af0df9a5bbd2, []int{111} } func (m *ProjectStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3152,7 +3180,7 @@ var xxx_messageInfo_ProjectStatus proto.InternalMessageInfo func (m *ProjectTolerations) Reset() { *m = ProjectTolerations{} } func (*ProjectTolerations) ProtoMessage() {} func (*ProjectTolerations) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{111} + return fileDescriptor_ca37af0df9a5bbd2, []int{112} } func (m *ProjectTolerations) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3180,7 +3208,7 @@ var xxx_messageInfo_ProjectTolerations proto.InternalMessageInfo func (m *Provider) Reset() { *m = Provider{} } func (*Provider) ProtoMessage() {} func (*Provider) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{112} + return fileDescriptor_ca37af0df9a5bbd2, []int{113} } func (m *Provider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3208,7 +3236,7 @@ var xxx_messageInfo_Provider proto.InternalMessageInfo func (m *Quota) Reset() { *m = Quota{} } func (*Quota) ProtoMessage() {} func (*Quota) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{113} + return fileDescriptor_ca37af0df9a5bbd2, []int{114} } func (m *Quota) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3236,7 +3264,7 @@ var xxx_messageInfo_Quota proto.InternalMessageInfo func (m *QuotaList) Reset() { *m = QuotaList{} } func (*QuotaList) ProtoMessage() {} func (*QuotaList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{114} + return fileDescriptor_ca37af0df9a5bbd2, []int{115} } func (m *QuotaList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3264,7 +3292,7 @@ var xxx_messageInfo_QuotaList proto.InternalMessageInfo func (m *QuotaSpec) Reset() { *m = QuotaSpec{} } func (*QuotaSpec) ProtoMessage() {} func (*QuotaSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{115} + return fileDescriptor_ca37af0df9a5bbd2, []int{116} } func (m *QuotaSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3292,7 +3320,7 @@ var xxx_messageInfo_QuotaSpec proto.InternalMessageInfo func (m *Region) Reset() { *m = Region{} } func (*Region) ProtoMessage() {} func (*Region) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{116} + return fileDescriptor_ca37af0df9a5bbd2, []int{117} } func (m *Region) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3320,7 +3348,7 @@ var xxx_messageInfo_Region proto.InternalMessageInfo func (m *ResourceData) Reset() { *m = ResourceData{} } func (*ResourceData) ProtoMessage() {} func (*ResourceData) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{117} + return fileDescriptor_ca37af0df9a5bbd2, []int{118} } func (m *ResourceData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3348,7 +3376,7 @@ var xxx_messageInfo_ResourceData proto.InternalMessageInfo func (m *ResourceWatchCacheSize) Reset() { *m = ResourceWatchCacheSize{} } func (*ResourceWatchCacheSize) ProtoMessage() {} func (*ResourceWatchCacheSize) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{118} + return fileDescriptor_ca37af0df9a5bbd2, []int{119} } func (m *ResourceWatchCacheSize) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3376,7 +3404,7 @@ var xxx_messageInfo_ResourceWatchCacheSize proto.InternalMessageInfo func (m *SSHAccess) Reset() { *m = SSHAccess{} } func (*SSHAccess) ProtoMessage() {} func (*SSHAccess) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{119} + return fileDescriptor_ca37af0df9a5bbd2, []int{120} } func (m *SSHAccess) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3404,7 +3432,7 @@ var xxx_messageInfo_SSHAccess proto.InternalMessageInfo func (m *SecretBinding) Reset() { *m = SecretBinding{} } func (*SecretBinding) ProtoMessage() {} func (*SecretBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{120} + return fileDescriptor_ca37af0df9a5bbd2, []int{121} } func (m *SecretBinding) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3432,7 +3460,7 @@ var xxx_messageInfo_SecretBinding proto.InternalMessageInfo func (m *SecretBindingList) Reset() { *m = SecretBindingList{} } func (*SecretBindingList) ProtoMessage() {} func (*SecretBindingList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{121} + return fileDescriptor_ca37af0df9a5bbd2, []int{122} } func (m *SecretBindingList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3460,7 +3488,7 @@ var xxx_messageInfo_SecretBindingList proto.InternalMessageInfo func (m *SecretBindingProvider) Reset() { *m = SecretBindingProvider{} } func (*SecretBindingProvider) ProtoMessage() {} func (*SecretBindingProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{122} + return fileDescriptor_ca37af0df9a5bbd2, []int{123} } func (m *SecretBindingProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3488,7 +3516,7 @@ var xxx_messageInfo_SecretBindingProvider proto.InternalMessageInfo func (m *Seed) Reset() { *m = Seed{} } func (*Seed) ProtoMessage() {} func (*Seed) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{123} + return fileDescriptor_ca37af0df9a5bbd2, []int{124} } func (m *Seed) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3516,7 +3544,7 @@ var xxx_messageInfo_Seed proto.InternalMessageInfo func (m *SeedBackup) Reset() { *m = SeedBackup{} } func (*SeedBackup) ProtoMessage() {} func (*SeedBackup) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{124} + return fileDescriptor_ca37af0df9a5bbd2, []int{125} } func (m *SeedBackup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3544,7 +3572,7 @@ var xxx_messageInfo_SeedBackup proto.InternalMessageInfo func (m *SeedDNS) Reset() { *m = SeedDNS{} } func (*SeedDNS) ProtoMessage() {} func (*SeedDNS) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{125} + return fileDescriptor_ca37af0df9a5bbd2, []int{126} } func (m *SeedDNS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3572,7 +3600,7 @@ var xxx_messageInfo_SeedDNS proto.InternalMessageInfo func (m *SeedDNSProvider) Reset() { *m = SeedDNSProvider{} } func (*SeedDNSProvider) ProtoMessage() {} func (*SeedDNSProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{126} + return fileDescriptor_ca37af0df9a5bbd2, []int{127} } func (m *SeedDNSProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3600,7 +3628,7 @@ var xxx_messageInfo_SeedDNSProvider proto.InternalMessageInfo func (m *SeedList) Reset() { *m = SeedList{} } func (*SeedList) ProtoMessage() {} func (*SeedList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{127} + return fileDescriptor_ca37af0df9a5bbd2, []int{128} } func (m *SeedList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3628,7 +3656,7 @@ var xxx_messageInfo_SeedList proto.InternalMessageInfo func (m *SeedNetworks) Reset() { *m = SeedNetworks{} } func (*SeedNetworks) ProtoMessage() {} func (*SeedNetworks) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{128} + return fileDescriptor_ca37af0df9a5bbd2, []int{129} } func (m *SeedNetworks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3656,7 +3684,7 @@ var xxx_messageInfo_SeedNetworks proto.InternalMessageInfo func (m *SeedProvider) Reset() { *m = SeedProvider{} } func (*SeedProvider) ProtoMessage() {} func (*SeedProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{129} + return fileDescriptor_ca37af0df9a5bbd2, []int{130} } func (m *SeedProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3684,7 +3712,7 @@ var xxx_messageInfo_SeedProvider proto.InternalMessageInfo func (m *SeedSelector) Reset() { *m = SeedSelector{} } func (*SeedSelector) ProtoMessage() {} func (*SeedSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{130} + return fileDescriptor_ca37af0df9a5bbd2, []int{131} } func (m *SeedSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3712,7 +3740,7 @@ var xxx_messageInfo_SeedSelector proto.InternalMessageInfo func (m *SeedSettingDependencyWatchdog) Reset() { *m = SeedSettingDependencyWatchdog{} } func (*SeedSettingDependencyWatchdog) ProtoMessage() {} func (*SeedSettingDependencyWatchdog) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{131} + return fileDescriptor_ca37af0df9a5bbd2, []int{132} } func (m *SeedSettingDependencyWatchdog) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3740,7 +3768,7 @@ var xxx_messageInfo_SeedSettingDependencyWatchdog proto.InternalMessageInfo func (m *SeedSettingDependencyWatchdogProber) Reset() { *m = SeedSettingDependencyWatchdogProber{} } func (*SeedSettingDependencyWatchdogProber) ProtoMessage() {} func (*SeedSettingDependencyWatchdogProber) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{132} + return fileDescriptor_ca37af0df9a5bbd2, []int{133} } func (m *SeedSettingDependencyWatchdogProber) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3768,7 +3796,7 @@ var xxx_messageInfo_SeedSettingDependencyWatchdogProber proto.InternalMessageInf func (m *SeedSettingDependencyWatchdogWeeder) Reset() { *m = SeedSettingDependencyWatchdogWeeder{} } func (*SeedSettingDependencyWatchdogWeeder) ProtoMessage() {} func (*SeedSettingDependencyWatchdogWeeder) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{133} + return fileDescriptor_ca37af0df9a5bbd2, []int{134} } func (m *SeedSettingDependencyWatchdogWeeder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3796,7 +3824,7 @@ var xxx_messageInfo_SeedSettingDependencyWatchdogWeeder proto.InternalMessageInf func (m *SeedSettingExcessCapacityReservation) Reset() { *m = SeedSettingExcessCapacityReservation{} } func (*SeedSettingExcessCapacityReservation) ProtoMessage() {} func (*SeedSettingExcessCapacityReservation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{134} + return fileDescriptor_ca37af0df9a5bbd2, []int{135} } func (m *SeedSettingExcessCapacityReservation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3826,7 +3854,7 @@ func (m *SeedSettingExcessCapacityReservationConfig) Reset() { } func (*SeedSettingExcessCapacityReservationConfig) ProtoMessage() {} func (*SeedSettingExcessCapacityReservationConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{135} + return fileDescriptor_ca37af0df9a5bbd2, []int{136} } func (m *SeedSettingExcessCapacityReservationConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3854,7 +3882,7 @@ var xxx_messageInfo_SeedSettingExcessCapacityReservationConfig proto.InternalMes func (m *SeedSettingLoadBalancerServices) Reset() { *m = SeedSettingLoadBalancerServices{} } func (*SeedSettingLoadBalancerServices) ProtoMessage() {} func (*SeedSettingLoadBalancerServices) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{136} + return fileDescriptor_ca37af0df9a5bbd2, []int{137} } func (m *SeedSettingLoadBalancerServices) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3882,7 +3910,7 @@ var xxx_messageInfo_SeedSettingLoadBalancerServices proto.InternalMessageInfo func (m *SeedSettingLoadBalancerServicesZones) Reset() { *m = SeedSettingLoadBalancerServicesZones{} } func (*SeedSettingLoadBalancerServicesZones) ProtoMessage() {} func (*SeedSettingLoadBalancerServicesZones) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{137} + return fileDescriptor_ca37af0df9a5bbd2, []int{138} } func (m *SeedSettingLoadBalancerServicesZones) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3910,7 +3938,7 @@ var xxx_messageInfo_SeedSettingLoadBalancerServicesZones proto.InternalMessageIn func (m *SeedSettingScheduling) Reset() { *m = SeedSettingScheduling{} } func (*SeedSettingScheduling) ProtoMessage() {} func (*SeedSettingScheduling) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{138} + return fileDescriptor_ca37af0df9a5bbd2, []int{139} } func (m *SeedSettingScheduling) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3938,7 +3966,7 @@ var xxx_messageInfo_SeedSettingScheduling proto.InternalMessageInfo func (m *SeedSettingTopologyAwareRouting) Reset() { *m = SeedSettingTopologyAwareRouting{} } func (*SeedSettingTopologyAwareRouting) ProtoMessage() {} func (*SeedSettingTopologyAwareRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{139} + return fileDescriptor_ca37af0df9a5bbd2, []int{140} } func (m *SeedSettingTopologyAwareRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3966,7 +3994,7 @@ var xxx_messageInfo_SeedSettingTopologyAwareRouting proto.InternalMessageInfo func (m *SeedSettingVerticalPodAutoscaler) Reset() { *m = SeedSettingVerticalPodAutoscaler{} } func (*SeedSettingVerticalPodAutoscaler) ProtoMessage() {} func (*SeedSettingVerticalPodAutoscaler) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{140} + return fileDescriptor_ca37af0df9a5bbd2, []int{141} } func (m *SeedSettingVerticalPodAutoscaler) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3994,7 +4022,7 @@ var xxx_messageInfo_SeedSettingVerticalPodAutoscaler proto.InternalMessageInfo func (m *SeedSettings) Reset() { *m = SeedSettings{} } func (*SeedSettings) ProtoMessage() {} func (*SeedSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{141} + return fileDescriptor_ca37af0df9a5bbd2, []int{142} } func (m *SeedSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4022,7 +4050,7 @@ var xxx_messageInfo_SeedSettings proto.InternalMessageInfo func (m *SeedSpec) Reset() { *m = SeedSpec{} } func (*SeedSpec) ProtoMessage() {} func (*SeedSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{142} + return fileDescriptor_ca37af0df9a5bbd2, []int{143} } func (m *SeedSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4050,7 +4078,7 @@ var xxx_messageInfo_SeedSpec proto.InternalMessageInfo func (m *SeedStatus) Reset() { *m = SeedStatus{} } func (*SeedStatus) ProtoMessage() {} func (*SeedStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{143} + return fileDescriptor_ca37af0df9a5bbd2, []int{144} } func (m *SeedStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4078,7 +4106,7 @@ var xxx_messageInfo_SeedStatus proto.InternalMessageInfo func (m *SeedTaint) Reset() { *m = SeedTaint{} } func (*SeedTaint) ProtoMessage() {} func (*SeedTaint) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{144} + return fileDescriptor_ca37af0df9a5bbd2, []int{145} } func (m *SeedTaint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4106,7 +4134,7 @@ var xxx_messageInfo_SeedTaint proto.InternalMessageInfo func (m *SeedTemplate) Reset() { *m = SeedTemplate{} } func (*SeedTemplate) ProtoMessage() {} func (*SeedTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{145} + return fileDescriptor_ca37af0df9a5bbd2, []int{146} } func (m *SeedTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4134,7 +4162,7 @@ var xxx_messageInfo_SeedTemplate proto.InternalMessageInfo func (m *SeedVolume) Reset() { *m = SeedVolume{} } func (*SeedVolume) ProtoMessage() {} func (*SeedVolume) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{146} + return fileDescriptor_ca37af0df9a5bbd2, []int{147} } func (m *SeedVolume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4162,7 +4190,7 @@ var xxx_messageInfo_SeedVolume proto.InternalMessageInfo func (m *SeedVolumeProvider) Reset() { *m = SeedVolumeProvider{} } func (*SeedVolumeProvider) ProtoMessage() {} func (*SeedVolumeProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{147} + return fileDescriptor_ca37af0df9a5bbd2, []int{148} } func (m *SeedVolumeProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4190,7 +4218,7 @@ var xxx_messageInfo_SeedVolumeProvider proto.InternalMessageInfo func (m *ServiceAccountConfig) Reset() { *m = ServiceAccountConfig{} } func (*ServiceAccountConfig) ProtoMessage() {} func (*ServiceAccountConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{148} + return fileDescriptor_ca37af0df9a5bbd2, []int{149} } func (m *ServiceAccountConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4218,7 +4246,7 @@ var xxx_messageInfo_ServiceAccountConfig proto.InternalMessageInfo func (m *ServiceAccountKeyRotation) Reset() { *m = ServiceAccountKeyRotation{} } func (*ServiceAccountKeyRotation) ProtoMessage() {} func (*ServiceAccountKeyRotation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{149} + return fileDescriptor_ca37af0df9a5bbd2, []int{150} } func (m *ServiceAccountKeyRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4246,7 +4274,7 @@ var xxx_messageInfo_ServiceAccountKeyRotation proto.InternalMessageInfo func (m *Shoot) Reset() { *m = Shoot{} } func (*Shoot) ProtoMessage() {} func (*Shoot) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{150} + return fileDescriptor_ca37af0df9a5bbd2, []int{151} } func (m *Shoot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4274,7 +4302,7 @@ var xxx_messageInfo_Shoot proto.InternalMessageInfo func (m *ShootAdvertisedAddress) Reset() { *m = ShootAdvertisedAddress{} } func (*ShootAdvertisedAddress) ProtoMessage() {} func (*ShootAdvertisedAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{151} + return fileDescriptor_ca37af0df9a5bbd2, []int{152} } func (m *ShootAdvertisedAddress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4302,7 +4330,7 @@ var xxx_messageInfo_ShootAdvertisedAddress proto.InternalMessageInfo func (m *ShootCredentials) Reset() { *m = ShootCredentials{} } func (*ShootCredentials) ProtoMessage() {} func (*ShootCredentials) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{152} + return fileDescriptor_ca37af0df9a5bbd2, []int{153} } func (m *ShootCredentials) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4330,7 +4358,7 @@ var xxx_messageInfo_ShootCredentials proto.InternalMessageInfo func (m *ShootCredentialsRotation) Reset() { *m = ShootCredentialsRotation{} } func (*ShootCredentialsRotation) ProtoMessage() {} func (*ShootCredentialsRotation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{153} + return fileDescriptor_ca37af0df9a5bbd2, []int{154} } func (m *ShootCredentialsRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4358,7 +4386,7 @@ var xxx_messageInfo_ShootCredentialsRotation proto.InternalMessageInfo func (m *ShootKubeconfigRotation) Reset() { *m = ShootKubeconfigRotation{} } func (*ShootKubeconfigRotation) ProtoMessage() {} func (*ShootKubeconfigRotation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{154} + return fileDescriptor_ca37af0df9a5bbd2, []int{155} } func (m *ShootKubeconfigRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4386,7 +4414,7 @@ var xxx_messageInfo_ShootKubeconfigRotation proto.InternalMessageInfo func (m *ShootList) Reset() { *m = ShootList{} } func (*ShootList) ProtoMessage() {} func (*ShootList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{155} + return fileDescriptor_ca37af0df9a5bbd2, []int{156} } func (m *ShootList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4414,7 +4442,7 @@ var xxx_messageInfo_ShootList proto.InternalMessageInfo func (m *ShootMachineImage) Reset() { *m = ShootMachineImage{} } func (*ShootMachineImage) ProtoMessage() {} func (*ShootMachineImage) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{156} + return fileDescriptor_ca37af0df9a5bbd2, []int{157} } func (m *ShootMachineImage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4442,7 +4470,7 @@ var xxx_messageInfo_ShootMachineImage proto.InternalMessageInfo func (m *ShootNetworks) Reset() { *m = ShootNetworks{} } func (*ShootNetworks) ProtoMessage() {} func (*ShootNetworks) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{157} + return fileDescriptor_ca37af0df9a5bbd2, []int{158} } func (m *ShootNetworks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4470,7 +4498,7 @@ var xxx_messageInfo_ShootNetworks proto.InternalMessageInfo func (m *ShootSSHKeypairRotation) Reset() { *m = ShootSSHKeypairRotation{} } func (*ShootSSHKeypairRotation) ProtoMessage() {} func (*ShootSSHKeypairRotation) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{158} + return fileDescriptor_ca37af0df9a5bbd2, []int{159} } func (m *ShootSSHKeypairRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4498,7 +4526,7 @@ var xxx_messageInfo_ShootSSHKeypairRotation proto.InternalMessageInfo func (m *ShootSpec) Reset() { *m = ShootSpec{} } func (*ShootSpec) ProtoMessage() {} func (*ShootSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{159} + return fileDescriptor_ca37af0df9a5bbd2, []int{160} } func (m *ShootSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4526,7 +4554,7 @@ var xxx_messageInfo_ShootSpec proto.InternalMessageInfo func (m *ShootState) Reset() { *m = ShootState{} } func (*ShootState) ProtoMessage() {} func (*ShootState) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{160} + return fileDescriptor_ca37af0df9a5bbd2, []int{161} } func (m *ShootState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4554,7 +4582,7 @@ var xxx_messageInfo_ShootState proto.InternalMessageInfo func (m *ShootStateList) Reset() { *m = ShootStateList{} } func (*ShootStateList) ProtoMessage() {} func (*ShootStateList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{161} + return fileDescriptor_ca37af0df9a5bbd2, []int{162} } func (m *ShootStateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4582,7 +4610,7 @@ var xxx_messageInfo_ShootStateList proto.InternalMessageInfo func (m *ShootStateSpec) Reset() { *m = ShootStateSpec{} } func (*ShootStateSpec) ProtoMessage() {} func (*ShootStateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{162} + return fileDescriptor_ca37af0df9a5bbd2, []int{163} } func (m *ShootStateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4610,7 +4638,7 @@ var xxx_messageInfo_ShootStateSpec proto.InternalMessageInfo func (m *ShootStatus) Reset() { *m = ShootStatus{} } func (*ShootStatus) ProtoMessage() {} func (*ShootStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{163} + return fileDescriptor_ca37af0df9a5bbd2, []int{164} } func (m *ShootStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4638,7 +4666,7 @@ var xxx_messageInfo_ShootStatus proto.InternalMessageInfo func (m *ShootTemplate) Reset() { *m = ShootTemplate{} } func (*ShootTemplate) ProtoMessage() {} func (*ShootTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{164} + return fileDescriptor_ca37af0df9a5bbd2, []int{165} } func (m *ShootTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4666,7 +4694,7 @@ var xxx_messageInfo_ShootTemplate proto.InternalMessageInfo func (m *SystemComponents) Reset() { *m = SystemComponents{} } func (*SystemComponents) ProtoMessage() {} func (*SystemComponents) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{165} + return fileDescriptor_ca37af0df9a5bbd2, []int{166} } func (m *SystemComponents) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4694,7 +4722,7 @@ var xxx_messageInfo_SystemComponents proto.InternalMessageInfo func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} func (*Toleration) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{166} + return fileDescriptor_ca37af0df9a5bbd2, []int{167} } func (m *Toleration) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4722,7 +4750,7 @@ var xxx_messageInfo_Toleration proto.InternalMessageInfo func (m *VerticalPodAutoscaler) Reset() { *m = VerticalPodAutoscaler{} } func (*VerticalPodAutoscaler) ProtoMessage() {} func (*VerticalPodAutoscaler) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{167} + return fileDescriptor_ca37af0df9a5bbd2, []int{168} } func (m *VerticalPodAutoscaler) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4750,7 +4778,7 @@ var xxx_messageInfo_VerticalPodAutoscaler proto.InternalMessageInfo func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} func (*Volume) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{168} + return fileDescriptor_ca37af0df9a5bbd2, []int{169} } func (m *Volume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4778,7 +4806,7 @@ var xxx_messageInfo_Volume proto.InternalMessageInfo func (m *VolumeType) Reset() { *m = VolumeType{} } func (*VolumeType) ProtoMessage() {} func (*VolumeType) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{169} + return fileDescriptor_ca37af0df9a5bbd2, []int{170} } func (m *VolumeType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4806,7 +4834,7 @@ var xxx_messageInfo_VolumeType proto.InternalMessageInfo func (m *WatchCacheSizes) Reset() { *m = WatchCacheSizes{} } func (*WatchCacheSizes) ProtoMessage() {} func (*WatchCacheSizes) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{170} + return fileDescriptor_ca37af0df9a5bbd2, []int{171} } func (m *WatchCacheSizes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4834,7 +4862,7 @@ var xxx_messageInfo_WatchCacheSizes proto.InternalMessageInfo func (m *Worker) Reset() { *m = Worker{} } func (*Worker) ProtoMessage() {} func (*Worker) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{171} + return fileDescriptor_ca37af0df9a5bbd2, []int{172} } func (m *Worker) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4862,7 +4890,7 @@ var xxx_messageInfo_Worker proto.InternalMessageInfo func (m *WorkerKubernetes) Reset() { *m = WorkerKubernetes{} } func (*WorkerKubernetes) ProtoMessage() {} func (*WorkerKubernetes) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{172} + return fileDescriptor_ca37af0df9a5bbd2, []int{173} } func (m *WorkerKubernetes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4890,7 +4918,7 @@ var xxx_messageInfo_WorkerKubernetes proto.InternalMessageInfo func (m *WorkerSystemComponents) Reset() { *m = WorkerSystemComponents{} } func (*WorkerSystemComponents) ProtoMessage() {} func (*WorkerSystemComponents) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{173} + return fileDescriptor_ca37af0df9a5bbd2, []int{174} } func (m *WorkerSystemComponents) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4918,7 +4946,7 @@ var xxx_messageInfo_WorkerSystemComponents proto.InternalMessageInfo func (m *WorkersSettings) Reset() { *m = WorkersSettings{} } func (*WorkersSettings) ProtoMessage() {} func (*WorkersSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{174} + return fileDescriptor_ca37af0df9a5bbd2, []int{175} } func (m *WorkersSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4993,6 +5021,7 @@ func init() { proto.RegisterType((*DNSProvider)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.core.v1beta1.DNSProvider") proto.RegisterType((*DataVolume)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.core.v1beta1.DataVolume") proto.RegisterType((*DeploymentRef)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.core.v1beta1.DeploymentRef") + proto.RegisterType((*DualApprovalForDeletion)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.core.v1beta1.DualApprovalForDeletion") proto.RegisterType((*ETCDEncryptionKeyRotation)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.core.v1beta1.ETCDEncryptionKeyRotation") proto.RegisterType((*EncryptionConfig)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.core.v1beta1.EncryptionConfig") proto.RegisterType((*ExpirableVersion)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.core.v1beta1.ExpirableVersion") @@ -5145,776 +5174,782 @@ func init() { } var fileDescriptor_ca37af0df9a5bbd2 = []byte{ - // 12300 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7d, 0x6c, 0x24, 0xc9, - 0x75, 0x18, 0xae, 0x1e, 0x7e, 0x3f, 0x7e, 0x2c, 0x59, 0xbb, 0xdc, 0xe3, 0x71, 0xf7, 0x76, 0x56, - 0x7d, 0x27, 0xfd, 0xee, 0x7c, 0x32, 0xd7, 0x77, 0x3e, 0xf9, 0x74, 0x2b, 0x9f, 0x4e, 0xe4, 0x0c, - 0xb9, 0x3b, 0x5e, 0x92, 0xcb, 0xab, 0x21, 0xef, 0xce, 0x67, 0xff, 0xce, 0x6e, 0xf6, 0x14, 0x87, - 0x7d, 0xec, 0xe9, 0x9e, 0xeb, 0xee, 0xe1, 0x92, 0x77, 0x72, 0x64, 0x29, 0xb6, 0xe3, 0x3b, 0x5b, - 0x81, 0x2d, 0xc0, 0x11, 0x4e, 0x72, 0x60, 0x19, 0x86, 0x91, 0x0f, 0x07, 0x8a, 0xe3, 0xc0, 0x01, - 0x6c, 0x23, 0x80, 0x21, 0xc0, 0xb1, 0x64, 0x58, 0x86, 0x20, 0x25, 0x88, 0x94, 0xc4, 0x74, 0xc4, - 0x28, 0x76, 0x80, 0x04, 0x46, 0x10, 0x23, 0x30, 0xb2, 0x31, 0xec, 0xa0, 0xbe, 0xba, 0xab, 0xbf, - 0x86, 0x64, 0x0f, 0x49, 0xe9, 0x60, 0xfd, 0x45, 0x4e, 0xbd, 0xaa, 0xf7, 0xaa, 0xaa, 0xab, 0x5e, - 0xbd, 0xf7, 0xea, 0xbd, 0x57, 0xb0, 0xd0, 0xb4, 0x82, 0xed, 0xce, 0xe6, 0x9c, 0xe9, 0xb6, 0x6e, - 0x34, 0x0d, 0xaf, 0x41, 0x1c, 0xe2, 0x45, 0xff, 0xb4, 0x77, 0x9a, 0x37, 0x8c, 0xb6, 0xe5, 0xdf, - 0x30, 0x5d, 0x8f, 0xdc, 0xd8, 0x7d, 0x62, 0x93, 0x04, 0xc6, 0x13, 0x37, 0x9a, 0x14, 0x66, 0x04, - 0xa4, 0x31, 0xd7, 0xf6, 0xdc, 0xc0, 0x45, 0x4f, 0x46, 0x38, 0xe6, 0x64, 0xd3, 0xe8, 0x9f, 0xf6, - 0x4e, 0x73, 0x8e, 0xe2, 0x98, 0xa3, 0x38, 0xe6, 0x04, 0x8e, 0xd9, 0xef, 0x56, 0xe9, 0xba, 0x4d, - 0xf7, 0x06, 0x43, 0xb5, 0xd9, 0xd9, 0x62, 0xbf, 0xd8, 0x0f, 0xf6, 0x1f, 0x27, 0x31, 0xfb, 0xd8, - 0xce, 0x07, 0xfc, 0x39, 0xcb, 0xa5, 0x9d, 0xb9, 0x61, 0x74, 0x02, 0xd7, 0x37, 0x0d, 0xdb, 0x72, - 0x9a, 0x37, 0x76, 0x53, 0xbd, 0x99, 0xd5, 0x95, 0xaa, 0xa2, 0xdb, 0x5d, 0xeb, 0x78, 0x9b, 0x86, - 0x99, 0x55, 0xe7, 0xa9, 0xa8, 0x4e, 0xcb, 0x30, 0xb7, 0x2d, 0x87, 0x78, 0xfb, 0x72, 0x42, 0x6e, - 0x78, 0xc4, 0x77, 0x3b, 0x9e, 0x49, 0x4e, 0xd4, 0xca, 0xbf, 0xd1, 0x22, 0x81, 0x91, 0x45, 0xeb, - 0x46, 0x5e, 0x2b, 0xaf, 0xe3, 0x04, 0x56, 0x2b, 0x4d, 0xe6, 0xfb, 0x8e, 0x6a, 0xe0, 0x9b, 0xdb, - 0xa4, 0x65, 0xa4, 0xda, 0x7d, 0x6f, 0x5e, 0xbb, 0x4e, 0x60, 0xd9, 0x37, 0x2c, 0x27, 0xf0, 0x03, - 0x2f, 0xd9, 0x48, 0x7f, 0x4b, 0x83, 0xc9, 0xf9, 0xb5, 0x5a, 0x9d, 0x78, 0xbb, 0xc4, 0x5b, 0x76, - 0x9b, 0x4d, 0xcb, 0x69, 0xa2, 0xc7, 0x61, 0x64, 0x97, 0x78, 0x9b, 0xae, 0x6f, 0x05, 0xfb, 0x33, - 0xda, 0x75, 0xed, 0xd1, 0x81, 0x85, 0xf1, 0xc3, 0x83, 0xf2, 0xc8, 0x0b, 0xb2, 0x10, 0x47, 0x70, - 0x54, 0x83, 0x8b, 0xdb, 0x41, 0xd0, 0x9e, 0x37, 0x4d, 0xe2, 0xfb, 0x61, 0x8d, 0x99, 0x12, 0x6b, - 0xf6, 0xc0, 0xe1, 0x41, 0xf9, 0xe2, 0xed, 0xf5, 0xf5, 0xb5, 0x04, 0x18, 0x67, 0xb5, 0xd1, 0x7f, - 0x43, 0x83, 0xa9, 0xb0, 0x33, 0x98, 0xbc, 0xd6, 0x21, 0x7e, 0xe0, 0x23, 0x0c, 0x97, 0x5b, 0xc6, - 0xde, 0xaa, 0xeb, 0xac, 0x74, 0x02, 0x23, 0xb0, 0x9c, 0x66, 0xcd, 0xd9, 0xb2, 0xad, 0xe6, 0x76, - 0x20, 0xba, 0x36, 0x7b, 0x78, 0x50, 0xbe, 0xbc, 0x92, 0x59, 0x03, 0xe7, 0xb4, 0xa4, 0x9d, 0x6e, - 0x19, 0x7b, 0x29, 0x84, 0x4a, 0xa7, 0x57, 0xd2, 0x60, 0x9c, 0xd5, 0x46, 0x7f, 0x12, 0x06, 0xe6, - 0x1b, 0x0d, 0xd7, 0x41, 0x8f, 0xc1, 0x10, 0x71, 0x8c, 0x4d, 0x9b, 0x34, 0x58, 0xc7, 0x86, 0x17, - 0x2e, 0x7c, 0xe1, 0xa0, 0xfc, 0xae, 0xc3, 0x83, 0xf2, 0xd0, 0x22, 0x2f, 0xc6, 0x12, 0xae, 0xff, - 0x42, 0x09, 0x06, 0x59, 0x23, 0x1f, 0x7d, 0x52, 0x83, 0x8b, 0x3b, 0x9d, 0x4d, 0xe2, 0x39, 0x24, - 0x20, 0x7e, 0xd5, 0xf0, 0xb7, 0x37, 0x5d, 0xc3, 0xe3, 0x28, 0x46, 0x9f, 0xbc, 0x35, 0x77, 0xf2, - 0xfd, 0x37, 0x77, 0x27, 0x8d, 0x8e, 0x8f, 0x29, 0x03, 0x80, 0xb3, 0x88, 0xa3, 0x5d, 0x18, 0x73, - 0x9a, 0x96, 0xb3, 0x57, 0x73, 0x9a, 0x1e, 0xf1, 0x7d, 0x36, 0x2f, 0xa3, 0x4f, 0x7e, 0xb8, 0x48, - 0x67, 0x56, 0x15, 0x3c, 0x0b, 0x93, 0x87, 0x07, 0xe5, 0x31, 0xb5, 0x04, 0xc7, 0xe8, 0xe8, 0x7f, - 0xad, 0xc1, 0x85, 0xf9, 0x46, 0xcb, 0xf2, 0x7d, 0xcb, 0x75, 0xd6, 0xec, 0x4e, 0xd3, 0x72, 0xd0, - 0x75, 0xe8, 0x77, 0x8c, 0x16, 0x61, 0x13, 0x32, 0xb2, 0x30, 0x26, 0xe6, 0xb4, 0x7f, 0xd5, 0x68, - 0x11, 0xcc, 0x20, 0xe8, 0x79, 0x18, 0x34, 0x5d, 0x67, 0xcb, 0x6a, 0x8a, 0x7e, 0x7e, 0xf7, 0x1c, - 0xdf, 0x09, 0x73, 0xea, 0x4e, 0x60, 0xdd, 0x13, 0x3b, 0x68, 0x0e, 0x1b, 0xf7, 0x16, 0xf7, 0x02, - 0xe2, 0x50, 0x32, 0x0b, 0x70, 0x78, 0x50, 0x1e, 0xac, 0x30, 0x04, 0x58, 0x20, 0x42, 0x8f, 0xc2, - 0x70, 0xc3, 0xf2, 0xf9, 0xc7, 0xec, 0x63, 0x1f, 0x73, 0xec, 0xf0, 0xa0, 0x3c, 0x5c, 0x15, 0x65, - 0x38, 0x84, 0xa2, 0x65, 0xb8, 0x44, 0x67, 0x90, 0xb7, 0xab, 0x13, 0xd3, 0x23, 0x01, 0xed, 0xda, - 0x4c, 0x3f, 0xeb, 0xee, 0xcc, 0xe1, 0x41, 0xf9, 0xd2, 0x9d, 0x0c, 0x38, 0xce, 0x6c, 0xa5, 0x2f, - 0xc1, 0xf0, 0xbc, 0x4d, 0x3c, 0xba, 0xc0, 0xd0, 0x4d, 0x98, 0x20, 0x2d, 0xc3, 0xb2, 0x31, 0x31, - 0x89, 0xb5, 0x4b, 0x3c, 0x7f, 0x46, 0xbb, 0xde, 0xf7, 0xe8, 0xc8, 0x02, 0x3a, 0x3c, 0x28, 0x4f, - 0x2c, 0xc6, 0x20, 0x38, 0x51, 0x53, 0xff, 0x98, 0x06, 0xa3, 0xf3, 0x9d, 0x86, 0x15, 0xf0, 0x71, - 0x21, 0x0f, 0x46, 0x0d, 0xfa, 0x73, 0xcd, 0xb5, 0x2d, 0x73, 0x5f, 0x2c, 0xae, 0xe7, 0x8a, 0x7c, - 0xcf, 0xf9, 0x08, 0xcd, 0xc2, 0x85, 0xc3, 0x83, 0xf2, 0xa8, 0x52, 0x80, 0x55, 0x22, 0xfa, 0x36, - 0xa8, 0x30, 0xf4, 0x83, 0x30, 0xc6, 0x87, 0xbb, 0x62, 0xb4, 0x31, 0xd9, 0x12, 0x7d, 0x78, 0x58, - 0xf9, 0x56, 0x92, 0xd0, 0xdc, 0xdd, 0xcd, 0x57, 0x89, 0x19, 0x60, 0xb2, 0x45, 0x3c, 0xe2, 0x98, - 0x84, 0x2f, 0x9b, 0x8a, 0xd2, 0x18, 0xc7, 0x50, 0xe9, 0x7f, 0x42, 0x99, 0xd8, 0xae, 0x61, 0xd9, - 0xc6, 0xa6, 0x65, 0x5b, 0xc1, 0xfe, 0xcb, 0xae, 0x43, 0x8e, 0xb1, 0x6e, 0x36, 0xe0, 0x81, 0x8e, - 0x63, 0xf0, 0x76, 0x36, 0x59, 0xe1, 0x2b, 0x65, 0x7d, 0xbf, 0x4d, 0xe8, 0x82, 0xa7, 0x33, 0x7d, - 0xe5, 0xf0, 0xa0, 0xfc, 0xc0, 0x46, 0x76, 0x15, 0x9c, 0xd7, 0x96, 0xf2, 0x2b, 0x05, 0xf4, 0x82, - 0x6b, 0x77, 0x5a, 0x02, 0x6b, 0x1f, 0xc3, 0xca, 0xf8, 0xd5, 0x46, 0x66, 0x0d, 0x9c, 0xd3, 0x52, - 0xff, 0x42, 0x09, 0xc6, 0x16, 0x0c, 0x73, 0xa7, 0xd3, 0x5e, 0xe8, 0x98, 0x3b, 0x24, 0x40, 0x3f, - 0x0a, 0xc3, 0xf4, 0xc0, 0x69, 0x18, 0x81, 0x21, 0x66, 0xf2, 0x7b, 0x72, 0x57, 0x3d, 0xfb, 0x88, - 0xb4, 0x76, 0x34, 0xb7, 0x2b, 0x24, 0x30, 0x16, 0x90, 0x98, 0x13, 0x88, 0xca, 0x70, 0x88, 0x15, - 0x6d, 0x41, 0xbf, 0xdf, 0x26, 0xa6, 0xd8, 0x53, 0xd5, 0x22, 0x6b, 0x45, 0xed, 0x71, 0xbd, 0x4d, - 0xcc, 0xe8, 0x2b, 0xd0, 0x5f, 0x98, 0xe1, 0x47, 0x0e, 0x0c, 0xfa, 0x81, 0x11, 0x74, 0x7c, 0xb6, - 0xd1, 0x46, 0x9f, 0x5c, 0xea, 0x99, 0x12, 0xc3, 0xb6, 0x30, 0x21, 0x68, 0x0d, 0xf2, 0xdf, 0x58, - 0x50, 0xd1, 0xff, 0xbd, 0x06, 0x93, 0x6a, 0xf5, 0x65, 0xcb, 0x0f, 0xd0, 0x0f, 0xa7, 0xa6, 0x73, - 0xee, 0x78, 0xd3, 0x49, 0x5b, 0xb3, 0xc9, 0x9c, 0x14, 0xe4, 0x86, 0x65, 0x89, 0x32, 0x95, 0x04, - 0x06, 0xac, 0x80, 0xb4, 0xf8, 0xb2, 0x2a, 0xc8, 0x47, 0xd5, 0x2e, 0x2f, 0x8c, 0x0b, 0x62, 0x03, - 0x35, 0x8a, 0x16, 0x73, 0xec, 0xfa, 0x8f, 0xc2, 0x25, 0xb5, 0xd6, 0x9a, 0xe7, 0xee, 0x5a, 0x0d, - 0xe2, 0xd1, 0x9d, 0x10, 0xec, 0xb7, 0x53, 0x3b, 0x81, 0xae, 0x2c, 0xcc, 0x20, 0xe8, 0xbd, 0x30, - 0xe8, 0x91, 0xa6, 0xe5, 0x3a, 0xec, 0x6b, 0x8f, 0x44, 0x73, 0x87, 0x59, 0x29, 0x16, 0x50, 0xfd, - 0x7f, 0x97, 0xe2, 0x73, 0x47, 0x3f, 0x23, 0xda, 0x85, 0xe1, 0xb6, 0x20, 0x25, 0xe6, 0xee, 0x76, - 0xaf, 0x03, 0x94, 0x5d, 0x8f, 0x66, 0x55, 0x96, 0xe0, 0x90, 0x16, 0xb2, 0x60, 0x42, 0xfe, 0x5f, - 0xe9, 0x81, 0xfd, 0x33, 0x76, 0xba, 0x16, 0x43, 0x84, 0x13, 0x88, 0xd1, 0x3a, 0x8c, 0xf8, 0x8c, - 0x49, 0x53, 0xc6, 0xd5, 0x97, 0xcf, 0xb8, 0xea, 0xb2, 0x92, 0x60, 0x5c, 0x53, 0xa2, 0xfb, 0x23, - 0x21, 0x00, 0x47, 0x88, 0xe8, 0x21, 0xe3, 0x13, 0xd2, 0x50, 0x8e, 0x0b, 0x76, 0xc8, 0xd4, 0x45, - 0x19, 0x0e, 0xa1, 0xfa, 0x67, 0xfb, 0x01, 0xa5, 0x97, 0xb8, 0x3a, 0x03, 0xbc, 0x44, 0xcc, 0x7f, - 0x2f, 0x33, 0x20, 0x76, 0x4b, 0x02, 0x31, 0x7a, 0x1d, 0xc6, 0x6d, 0xc3, 0x0f, 0xee, 0xb6, 0xa9, - 0xf4, 0x28, 0x17, 0xca, 0xe8, 0x93, 0xf3, 0x45, 0xbe, 0xf4, 0xb2, 0x8a, 0x68, 0x61, 0xea, 0xf0, - 0xa0, 0x3c, 0x1e, 0x2b, 0xc2, 0x71, 0x52, 0xe8, 0x55, 0x18, 0xa1, 0x05, 0x8b, 0x9e, 0xe7, 0x7a, - 0x62, 0xf6, 0x9f, 0x2d, 0x4a, 0x97, 0x21, 0xe1, 0xd2, 0x6c, 0xf8, 0x13, 0x47, 0xe8, 0xd1, 0x0f, - 0x00, 0x72, 0x37, 0x7d, 0x2a, 0x80, 0x36, 0x6e, 0x71, 0x51, 0x99, 0x0e, 0x96, 0x7e, 0x9d, 0xbe, - 0x85, 0x59, 0xf1, 0x35, 0xd1, 0xdd, 0x54, 0x0d, 0x9c, 0xd1, 0x0a, 0xed, 0x00, 0x0a, 0xc5, 0xed, - 0x70, 0x01, 0xcc, 0x0c, 0x1c, 0x7f, 0xf9, 0x5c, 0xa6, 0xc4, 0x6e, 0xa5, 0x50, 0xe0, 0x0c, 0xb4, - 0xfa, 0xef, 0x95, 0x60, 0x94, 0x2f, 0x91, 0x45, 0x27, 0xf0, 0xf6, 0xcf, 0xe1, 0x80, 0x20, 0xb1, - 0x03, 0xa2, 0x52, 0x7c, 0xcf, 0xb3, 0x0e, 0xe7, 0x9e, 0x0f, 0xad, 0xc4, 0xf9, 0xb0, 0xd8, 0x2b, - 0xa1, 0xee, 0xc7, 0xc3, 0xbf, 0xd3, 0xe0, 0x82, 0x52, 0xfb, 0x1c, 0x4e, 0x87, 0x46, 0xfc, 0x74, - 0x78, 0xae, 0xc7, 0xf1, 0xe5, 0x1c, 0x0e, 0x6e, 0x6c, 0x58, 0x8c, 0x71, 0x3f, 0x09, 0xb0, 0xc9, - 0xd8, 0xc9, 0x6a, 0x24, 0x27, 0x85, 0x9f, 0x7c, 0x21, 0x84, 0x60, 0xa5, 0x56, 0x8c, 0x67, 0x95, - 0xba, 0xf2, 0xac, 0xff, 0xda, 0x07, 0x53, 0xa9, 0x69, 0x4f, 0xf3, 0x11, 0xed, 0x5b, 0xc4, 0x47, - 0x4a, 0xdf, 0x0a, 0x3e, 0xd2, 0x57, 0x88, 0x8f, 0x1c, 0xfb, 0x9c, 0x40, 0x1e, 0xa0, 0x96, 0xd5, - 0xe4, 0xcd, 0xea, 0x81, 0xe1, 0x05, 0xeb, 0x56, 0x8b, 0x08, 0x8e, 0xf3, 0x5d, 0xc7, 0x5b, 0xb2, - 0xb4, 0x05, 0x67, 0x3c, 0x2b, 0x29, 0x4c, 0x38, 0x03, 0xbb, 0xfe, 0x95, 0x7e, 0x80, 0xca, 0x3c, - 0x76, 0x03, 0xde, 0xd9, 0xe7, 0x60, 0xa0, 0xbd, 0x6d, 0xf8, 0x72, 0x3d, 0x3d, 0x26, 0x17, 0xe3, - 0x1a, 0x2d, 0xbc, 0x7f, 0x50, 0x9e, 0xa9, 0x78, 0xa4, 0x41, 0x9c, 0xc0, 0x32, 0x6c, 0x5f, 0x36, - 0x62, 0x30, 0xcc, 0xdb, 0xd1, 0x31, 0xd0, 0x69, 0xac, 0xb8, 0xad, 0xb6, 0x4d, 0x28, 0x94, 0x8d, - 0xa1, 0x54, 0x6c, 0x0c, 0xcb, 0x29, 0x4c, 0x38, 0x03, 0xbb, 0xa4, 0x59, 0x73, 0xac, 0xc0, 0x32, - 0x42, 0x9a, 0x7d, 0xc5, 0x69, 0xc6, 0x31, 0xe1, 0x0c, 0xec, 0xe8, 0x2d, 0x0d, 0x66, 0xe3, 0xc5, - 0x4b, 0x96, 0x63, 0xf9, 0xdb, 0xa4, 0xc1, 0x88, 0xf7, 0x9f, 0x98, 0xf8, 0xb5, 0xc3, 0x83, 0xf2, - 0xec, 0x72, 0x2e, 0x46, 0xdc, 0x85, 0x1a, 0xfa, 0x84, 0x06, 0x57, 0x12, 0xf3, 0xe2, 0x59, 0xcd, - 0x26, 0xf1, 0x44, 0x6f, 0x4e, 0xbe, 0x84, 0xca, 0x87, 0x07, 0xe5, 0x2b, 0xcb, 0xf9, 0x28, 0x71, - 0x37, 0x7a, 0xfa, 0xe7, 0x35, 0xe8, 0xab, 0xe0, 0x1a, 0x7a, 0x3c, 0xa6, 0xc4, 0x3d, 0xa0, 0x2a, - 0x71, 0xf7, 0x0f, 0xca, 0x43, 0x15, 0x5c, 0x53, 0xf4, 0xb9, 0x4f, 0x68, 0x30, 0x65, 0xba, 0x4e, - 0x60, 0xd0, 0x7e, 0x61, 0x2e, 0xe9, 0x48, 0xae, 0x5a, 0x48, 0x7f, 0xa9, 0x24, 0x90, 0x2d, 0x3c, - 0x28, 0x3a, 0x30, 0x95, 0x84, 0xf8, 0x38, 0x4d, 0x59, 0xff, 0x9a, 0x06, 0x63, 0x15, 0xdb, 0xed, - 0x34, 0xd6, 0x3c, 0x77, 0xcb, 0xb2, 0xc9, 0x3b, 0x43, 0x69, 0x53, 0x7b, 0x9c, 0x77, 0x28, 0x33, - 0x25, 0x4a, 0xad, 0xf8, 0x0e, 0x51, 0xa2, 0xd4, 0x2e, 0xe7, 0x9c, 0x93, 0x3f, 0x04, 0xd3, 0x6a, - 0xad, 0x50, 0x18, 0xa3, 0x5a, 0xd4, 0x8e, 0xe5, 0x34, 0x92, 0x5a, 0xd4, 0x1d, 0xcb, 0x69, 0x60, - 0x06, 0x09, 0x2d, 0x0e, 0xa5, 0x3c, 0x8b, 0x83, 0xfe, 0x0b, 0x43, 0xf1, 0x69, 0x63, 0xc7, 0xf0, - 0xa3, 0x30, 0x6c, 0x1a, 0x0b, 0x1d, 0xa7, 0x61, 0x87, 0x2a, 0x1a, 0x9d, 0x82, 0xca, 0x3c, 0x2f, - 0xc3, 0x21, 0x14, 0xbd, 0x0e, 0x10, 0x59, 0xeb, 0xc4, 0x37, 0x5e, 0xea, 0xcd, 0x42, 0x58, 0x27, - 0x41, 0x60, 0x39, 0x4d, 0x3f, 0x5a, 0x57, 0x11, 0x0c, 0x2b, 0xd4, 0xd0, 0x8f, 0xc1, 0xb8, 0xf8, - 0x82, 0xb5, 0x96, 0xd1, 0x14, 0xc6, 0x8c, 0x82, 0x9f, 0x61, 0x45, 0x41, 0xb4, 0x30, 0x2d, 0x08, - 0x8f, 0xab, 0xa5, 0x3e, 0x8e, 0x53, 0x43, 0xfb, 0x30, 0xd6, 0x52, 0x0d, 0x34, 0xfd, 0xc5, 0x65, - 0x25, 0xc5, 0x58, 0xb3, 0x70, 0x49, 0x10, 0x1f, 0x8b, 0x99, 0x76, 0x62, 0xa4, 0x32, 0xf4, 0xcc, - 0x81, 0xb3, 0xd2, 0x33, 0x09, 0x0c, 0x71, 0x4d, 0xdb, 0x9f, 0x19, 0x64, 0x03, 0xbc, 0x59, 0x64, - 0x80, 0x5c, 0x69, 0x8f, 0xcc, 0xcf, 0xfc, 0xb7, 0x8f, 0x25, 0x6e, 0xb4, 0x0b, 0x63, 0x54, 0x64, - 0xa8, 0x13, 0x9b, 0x98, 0x81, 0xeb, 0xcd, 0x0c, 0x15, 0x37, 0xef, 0xd6, 0x15, 0x3c, 0xdc, 0x4e, - 0xa7, 0x96, 0xe0, 0x18, 0x9d, 0xd0, 0x10, 0x31, 0x9c, 0x6b, 0x88, 0xe8, 0xc0, 0xe8, 0xae, 0x62, - 0x30, 0x1b, 0x61, 0x93, 0xf0, 0xa1, 0x22, 0x1d, 0x8b, 0xac, 0x67, 0x0b, 0x17, 0x05, 0xa1, 0x51, - 0xd5, 0xd2, 0xa6, 0xd2, 0xd1, 0x3f, 0x37, 0x0a, 0x53, 0x15, 0xbb, 0xe3, 0x07, 0xc4, 0x9b, 0x17, - 0x37, 0x50, 0xc4, 0x43, 0x1f, 0xd7, 0xe0, 0x32, 0xfb, 0xb7, 0xea, 0xde, 0x73, 0xaa, 0xc4, 0x36, - 0xf6, 0xe7, 0xb7, 0x68, 0x8d, 0x46, 0xe3, 0x64, 0xec, 0xad, 0xda, 0x11, 0x22, 0x2a, 0xb3, 0xfc, - 0xd5, 0x33, 0x31, 0xe2, 0x1c, 0x4a, 0xe8, 0x67, 0x34, 0x78, 0x30, 0x03, 0x54, 0x25, 0x36, 0x09, - 0xa4, 0x58, 0x74, 0xd2, 0x7e, 0x3c, 0x74, 0x78, 0x50, 0x7e, 0xb0, 0x9e, 0x87, 0x14, 0xe7, 0xd3, - 0x43, 0x7f, 0x5f, 0x83, 0xd9, 0x0c, 0xe8, 0x92, 0x61, 0xd9, 0x1d, 0x4f, 0x4a, 0x4c, 0x27, 0xed, - 0x0e, 0x13, 0x5c, 0xea, 0xb9, 0x58, 0x71, 0x17, 0x8a, 0xe8, 0xa3, 0x30, 0x1d, 0x42, 0x37, 0x1c, - 0x87, 0x90, 0x46, 0x4c, 0x7e, 0x3a, 0x69, 0x57, 0x1e, 0x3c, 0x3c, 0x28, 0x4f, 0xd7, 0xb3, 0x10, - 0xe2, 0x6c, 0x3a, 0xa8, 0x09, 0x0f, 0x45, 0x80, 0xc0, 0xb2, 0xad, 0xd7, 0xb9, 0x88, 0xb7, 0xed, - 0x11, 0x7f, 0xdb, 0xb5, 0x1b, 0x8c, 0x59, 0x68, 0x0b, 0xef, 0x3e, 0x3c, 0x28, 0x3f, 0x54, 0xef, - 0x56, 0x11, 0x77, 0xc7, 0x83, 0x1a, 0x30, 0xe6, 0x9b, 0x86, 0x53, 0x73, 0x02, 0xe2, 0xed, 0x1a, - 0xf6, 0xcc, 0x60, 0xa1, 0x01, 0xf2, 0x2d, 0xaa, 0xe0, 0xc1, 0x31, 0xac, 0xe8, 0x03, 0x30, 0x4c, - 0xf6, 0xda, 0x86, 0xd3, 0x20, 0x9c, 0x2d, 0x8c, 0x2c, 0x5c, 0xa5, 0x87, 0xd1, 0xa2, 0x28, 0xbb, - 0x7f, 0x50, 0x1e, 0x93, 0xff, 0xaf, 0xb8, 0x0d, 0x82, 0xc3, 0xda, 0xe8, 0x23, 0x70, 0x89, 0x5d, - 0xb6, 0x35, 0x08, 0x63, 0x72, 0xbe, 0x94, 0xa2, 0x87, 0x0b, 0xf5, 0x93, 0x5d, 0x9c, 0xac, 0x64, - 0xe0, 0xc3, 0x99, 0x54, 0xe8, 0x67, 0x68, 0x19, 0x7b, 0xb7, 0x3c, 0xc3, 0x24, 0x5b, 0x1d, 0x7b, - 0x9d, 0x78, 0x2d, 0xcb, 0xe1, 0x8a, 0x0a, 0x31, 0x5d, 0xa7, 0x41, 0x59, 0x89, 0xf6, 0xe8, 0x00, - 0xff, 0x0c, 0x2b, 0xdd, 0x2a, 0xe2, 0xee, 0x78, 0xd0, 0x53, 0x30, 0x66, 0x35, 0x1d, 0xd7, 0x23, - 0xeb, 0x86, 0xe5, 0x04, 0xfe, 0x0c, 0x30, 0x9b, 0x3e, 0x9b, 0xd6, 0x9a, 0x52, 0x8e, 0x63, 0xb5, - 0xd0, 0x2e, 0x20, 0x87, 0xdc, 0x5b, 0x73, 0x1b, 0x6c, 0x09, 0x6c, 0xb4, 0xd9, 0x42, 0x9e, 0x19, - 0x2d, 0x34, 0x35, 0x4c, 0xc9, 0x58, 0x4d, 0x61, 0xc3, 0x19, 0x14, 0xd0, 0x12, 0xa0, 0x96, 0xb1, - 0xb7, 0xd8, 0x6a, 0x07, 0xfb, 0x0b, 0x1d, 0x7b, 0x47, 0x70, 0x8d, 0x31, 0x36, 0x17, 0x5c, 0xc9, - 0x4b, 0x41, 0x71, 0x46, 0x0b, 0x64, 0xc0, 0x15, 0x3e, 0x9e, 0xaa, 0x41, 0x5a, 0xae, 0xe3, 0x93, - 0xc0, 0x57, 0x16, 0xe9, 0xcc, 0x38, 0xbb, 0x22, 0x63, 0x22, 0x7f, 0x2d, 0xbf, 0x1a, 0xee, 0x86, - 0x23, 0x7e, 0xe9, 0x3c, 0xd1, 0xfd, 0xd2, 0x59, 0xff, 0x5f, 0xfd, 0x30, 0x93, 0x62, 0xd8, 0x77, - 0xdb, 0x01, 0x3b, 0xde, 0x8e, 0xdc, 0x92, 0xda, 0x29, 0x6d, 0xc9, 0x36, 0x5c, 0x0f, 0x2b, 0xdc, - 0x6a, 0x77, 0x32, 0x69, 0x95, 0x18, 0xad, 0x47, 0x0e, 0x0f, 0xca, 0xd7, 0xeb, 0x47, 0xd4, 0xc5, - 0x47, 0x62, 0xcb, 0x67, 0x77, 0x7d, 0xe7, 0xc4, 0xee, 0x3e, 0x02, 0x97, 0x14, 0x80, 0x47, 0x8c, - 0xc6, 0x7e, 0x0f, 0xec, 0x96, 0xed, 0xf2, 0x7a, 0x06, 0x3e, 0x9c, 0x49, 0x25, 0x97, 0xc7, 0x0c, - 0x9c, 0x07, 0x8f, 0xd1, 0x0f, 0xfa, 0x60, 0xa4, 0xe2, 0x3a, 0x0d, 0x8b, 0xad, 0xd7, 0x27, 0x62, - 0xb7, 0x2a, 0x0f, 0xa9, 0xc2, 0xcc, 0xfd, 0x83, 0xf2, 0x78, 0x58, 0x51, 0x91, 0x6e, 0x9e, 0x09, - 0x4d, 0x99, 0x5c, 0x45, 0x78, 0x77, 0xdc, 0x06, 0x79, 0xff, 0xa0, 0x7c, 0x21, 0x6c, 0x16, 0x37, - 0x4b, 0x52, 0x06, 0x42, 0xf5, 0xe5, 0x75, 0xcf, 0x70, 0x7c, 0xab, 0x07, 0x0b, 0x45, 0x68, 0x7b, - 0x5a, 0x4e, 0x61, 0xc3, 0x19, 0x14, 0xd0, 0xab, 0x30, 0x41, 0x4b, 0x37, 0xda, 0x0d, 0x23, 0x20, - 0x05, 0x0d, 0x13, 0x97, 0x05, 0xcd, 0x89, 0xe5, 0x18, 0x26, 0x9c, 0xc0, 0xcc, 0x6f, 0xa1, 0x0c, - 0xdf, 0x75, 0xd8, 0xf7, 0x8c, 0xdd, 0x42, 0xd1, 0x52, 0x2c, 0xa0, 0xe8, 0x31, 0x18, 0x6a, 0x11, - 0xdf, 0x37, 0x9a, 0x84, 0x1d, 0x82, 0x23, 0x91, 0xa4, 0xbb, 0xc2, 0x8b, 0xb1, 0x84, 0xa3, 0xf7, - 0xc1, 0x80, 0xe9, 0x36, 0x88, 0x3f, 0x33, 0xc4, 0xd8, 0x34, 0x65, 0x79, 0x03, 0x15, 0x5a, 0x70, - 0xff, 0xa0, 0x3c, 0xc2, 0x2c, 0x75, 0xf4, 0x17, 0xe6, 0x95, 0xf4, 0x5f, 0xa2, 0x5a, 0x6d, 0x42, - 0x8d, 0x3f, 0xc6, 0xed, 0xd9, 0xf9, 0x5d, 0x44, 0xe9, 0x9f, 0xd2, 0x60, 0x8c, 0xf6, 0xd0, 0x73, - 0xed, 0x35, 0xdb, 0x70, 0x08, 0xfa, 0x29, 0x0d, 0x26, 0xb7, 0xad, 0xe6, 0xb6, 0x7a, 0xfd, 0x2d, - 0xa4, 0xd3, 0x42, 0xda, 0xff, 0xed, 0x04, 0xae, 0x85, 0x4b, 0x87, 0x07, 0xe5, 0xc9, 0x64, 0x29, - 0x4e, 0xd1, 0xd4, 0xdf, 0x2c, 0xc1, 0x25, 0xd1, 0x33, 0x9b, 0x8a, 0x8b, 0x6d, 0xdb, 0xdd, 0x6f, - 0x11, 0xe7, 0x3c, 0x6e, 0xaa, 0xe5, 0x17, 0x2a, 0xe5, 0x7e, 0xa1, 0x56, 0xea, 0x0b, 0xf5, 0x15, - 0xf9, 0x42, 0xe1, 0x42, 0x3e, 0xe2, 0x2b, 0xfd, 0x99, 0x06, 0x33, 0x59, 0x73, 0x71, 0x0e, 0x56, - 0x92, 0x56, 0xdc, 0x4a, 0x72, 0xbb, 0xa8, 0xd9, 0x2b, 0xd9, 0xf5, 0x1c, 0x6b, 0xc9, 0x9f, 0x96, - 0xe0, 0x72, 0x54, 0xbd, 0xe6, 0xf8, 0x81, 0x61, 0xdb, 0xfc, 0x3c, 0x3f, 0xfb, 0xef, 0xde, 0x8e, - 0x19, 0xbb, 0x56, 0x7b, 0x1b, 0xaa, 0xda, 0xf7, 0xdc, 0xbb, 0xa8, 0xbd, 0xc4, 0x5d, 0xd4, 0xda, - 0x29, 0xd2, 0xec, 0x7e, 0x2d, 0xf5, 0xdf, 0x35, 0x98, 0xcd, 0x6e, 0x78, 0x0e, 0x8b, 0xca, 0x8d, - 0x2f, 0xaa, 0x1f, 0x38, 0xbd, 0x51, 0xe7, 0x2c, 0xab, 0xdf, 0x28, 0xe5, 0x8d, 0x96, 0x59, 0xcc, - 0xb6, 0xe0, 0x82, 0x47, 0x9a, 0x96, 0x1f, 0x88, 0x4b, 0x93, 0x93, 0x79, 0x13, 0x49, 0x2b, 0xf2, - 0x05, 0x1c, 0xc7, 0x81, 0x93, 0x48, 0xd1, 0x2a, 0x0c, 0xf9, 0x84, 0x34, 0x28, 0xfe, 0xd2, 0xf1, - 0xf1, 0x87, 0xa7, 0x51, 0x9d, 0xb7, 0xc5, 0x12, 0x09, 0xfa, 0x61, 0x18, 0x6f, 0x84, 0x3b, 0xea, - 0x08, 0x57, 0x82, 0x24, 0x56, 0x76, 0xbd, 0x55, 0x55, 0x5b, 0xe3, 0x38, 0x32, 0xfd, 0xaf, 0x34, - 0xb8, 0xda, 0x6d, 0x6d, 0xa1, 0xd7, 0x00, 0x4c, 0x29, 0x5e, 0x70, 0x67, 0xb2, 0x82, 0x17, 0x60, - 0xa1, 0x90, 0x12, 0x6d, 0xd0, 0xb0, 0xc8, 0xc7, 0x0a, 0x91, 0x0c, 0x0f, 0x85, 0xd2, 0x19, 0x79, - 0x28, 0xe8, 0xff, 0x43, 0x53, 0x59, 0x91, 0xfa, 0x6d, 0xdf, 0x69, 0xac, 0x48, 0xed, 0x7b, 0xae, - 0x05, 0xfe, 0xab, 0x25, 0xb8, 0x9e, 0xdd, 0x44, 0x39, 0x7b, 0x3f, 0x0c, 0x83, 0x6d, 0xee, 0xf1, - 0xd7, 0xc7, 0xce, 0xc6, 0x47, 0x29, 0x67, 0xe1, 0xfe, 0x78, 0xf7, 0x0f, 0xca, 0xb3, 0x59, 0x8c, - 0x5e, 0x78, 0xf2, 0x89, 0x76, 0xc8, 0x4a, 0x98, 0x0a, 0xb9, 0xf4, 0xf7, 0xbd, 0xc7, 0x64, 0x2e, - 0xc6, 0x26, 0xb1, 0x8f, 0x6d, 0x1d, 0xfc, 0x98, 0x06, 0x13, 0xb1, 0x15, 0xed, 0xcf, 0x0c, 0xb0, - 0x35, 0x5a, 0xe8, 0x72, 0x38, 0xb6, 0x55, 0xa2, 0x93, 0x3b, 0x56, 0xec, 0xe3, 0x04, 0xc1, 0x04, - 0x9b, 0x55, 0x67, 0xf5, 0x1d, 0xc7, 0x66, 0xd5, 0xce, 0xe7, 0xb0, 0xd9, 0x5f, 0x2c, 0xe5, 0x8d, - 0x96, 0xb1, 0xd9, 0x7b, 0x30, 0x22, 0x7d, 0xe1, 0x25, 0xbb, 0x58, 0xea, 0xb5, 0x4f, 0x1c, 0x5d, - 0xe4, 0x18, 0x25, 0x4b, 0x7c, 0x1c, 0xd1, 0x42, 0x3f, 0xa1, 0x01, 0x44, 0x1f, 0x46, 0x6c, 0xaa, - 0xf5, 0xd3, 0x9b, 0x0e, 0x45, 0xac, 0x99, 0xa0, 0x5b, 0x5a, 0x59, 0x14, 0x0a, 0x5d, 0xfd, 0xff, - 0xf4, 0x01, 0x4a, 0xf7, 0xfd, 0x78, 0x17, 0x41, 0x47, 0x08, 0xa4, 0xcf, 0xc2, 0x85, 0xa6, 0xed, - 0x6e, 0x1a, 0xb6, 0xbd, 0x2f, 0x9c, 0xc3, 0x85, 0x9b, 0xf1, 0x45, 0x7a, 0x30, 0xdd, 0x8a, 0x83, - 0x70, 0xb2, 0x2e, 0x6a, 0xc3, 0xa4, 0x47, 0x4c, 0xd7, 0x31, 0x2d, 0x9b, 0xa9, 0x4e, 0x6e, 0x27, - 0x28, 0xa8, 0x81, 0x33, 0xf1, 0x1e, 0x27, 0x70, 0xe1, 0x14, 0x76, 0xf4, 0x1e, 0x18, 0x6a, 0x7b, - 0x56, 0xcb, 0xf0, 0xf6, 0x99, 0x72, 0x36, 0xbc, 0x30, 0x4a, 0x4f, 0xb8, 0x35, 0x5e, 0x84, 0x25, - 0x0c, 0x7d, 0x04, 0x46, 0x6c, 0x6b, 0x8b, 0x98, 0xfb, 0xa6, 0x4d, 0x84, 0x85, 0xf2, 0xee, 0xe9, - 0x2c, 0x99, 0x65, 0x89, 0x56, 0x38, 0x5d, 0xc8, 0x9f, 0x38, 0x22, 0x88, 0x6a, 0x70, 0xf1, 0x9e, - 0xeb, 0xed, 0x10, 0xcf, 0x26, 0xbe, 0x5f, 0xef, 0xb4, 0xdb, 0xae, 0x17, 0x90, 0x06, 0xb3, 0x63, - 0x0e, 0x73, 0x0f, 0xf8, 0x17, 0xd3, 0x60, 0x9c, 0xd5, 0x46, 0x7f, 0xab, 0x04, 0x57, 0xba, 0x74, - 0x02, 0x61, 0xba, 0x37, 0xc4, 0x1c, 0x89, 0x95, 0xf0, 0x14, 0x5f, 0xcf, 0xa2, 0xf0, 0xfe, 0x41, - 0xf9, 0xe1, 0x2e, 0x08, 0xea, 0x74, 0x29, 0x92, 0xe6, 0x3e, 0x8e, 0xd0, 0xa0, 0x1a, 0x0c, 0x36, - 0x22, 0xb3, 0xfe, 0xc8, 0xc2, 0x13, 0x94, 0x5b, 0x73, 0x03, 0xdc, 0x71, 0xb1, 0x09, 0x04, 0x68, - 0x19, 0x86, 0xb8, 0xab, 0x06, 0x11, 0x9c, 0xff, 0x49, 0xa6, 0x1e, 0xf3, 0xa2, 0xe3, 0x22, 0x93, - 0x28, 0xf4, 0xbf, 0xd4, 0x60, 0xa8, 0xe2, 0x7a, 0xa4, 0xba, 0x5a, 0x47, 0xfb, 0x30, 0xaa, 0x04, - 0xe9, 0x08, 0x2e, 0x58, 0x90, 0x2d, 0x30, 0x8c, 0xf3, 0x11, 0x36, 0xe9, 0x50, 0x1e, 0x16, 0x60, - 0x95, 0x16, 0x7a, 0x8d, 0xce, 0xf9, 0x3d, 0xcf, 0x0a, 0x28, 0xe1, 0x5e, 0x6e, 0xb8, 0x39, 0x61, - 0x2c, 0x71, 0xf1, 0x15, 0x15, 0xfe, 0xc4, 0x11, 0x15, 0x7d, 0x8d, 0x72, 0x80, 0x64, 0x37, 0xd1, - 0x4d, 0xe8, 0x6f, 0xb9, 0x0d, 0xf9, 0xdd, 0xdf, 0x2b, 0xf7, 0xf7, 0x8a, 0xdb, 0xa0, 0x73, 0x7b, - 0x39, 0xdd, 0x82, 0x99, 0xca, 0x59, 0x1b, 0x7d, 0x15, 0x26, 0x93, 0xf4, 0xd1, 0x4d, 0x98, 0x30, - 0xdd, 0x56, 0xcb, 0x75, 0xea, 0x9d, 0xad, 0x2d, 0x6b, 0x8f, 0xc4, 0x3c, 0xfd, 0x2b, 0x31, 0x08, - 0x4e, 0xd4, 0xd4, 0x3f, 0xa3, 0x41, 0x1f, 0xfd, 0x2e, 0x3a, 0x0c, 0x36, 0xdc, 0x96, 0x61, 0x39, - 0xa2, 0x57, 0x2c, 0xaa, 0xa1, 0xca, 0x4a, 0xb0, 0x80, 0xa0, 0x36, 0x8c, 0x48, 0xa1, 0xa9, 0x27, - 0x6f, 0xb3, 0xea, 0x6a, 0x3d, 0xf4, 0xd0, 0x0d, 0x39, 0xb9, 0x2c, 0xf1, 0x71, 0x44, 0x44, 0x37, - 0x60, 0xaa, 0xba, 0x5a, 0xaf, 0x39, 0xa6, 0xdd, 0x69, 0x90, 0xc5, 0x3d, 0xf6, 0x87, 0xf2, 0x12, - 0x8b, 0x97, 0x88, 0x71, 0x32, 0x5e, 0x22, 0x2a, 0x61, 0x09, 0xa3, 0xd5, 0x08, 0x6f, 0x21, 0xdc, - 0xf1, 0x59, 0x35, 0x81, 0x04, 0x4b, 0x98, 0xfe, 0xb5, 0x12, 0x8c, 0x2a, 0x1d, 0x42, 0x36, 0x0c, - 0xf1, 0xe1, 0x4a, 0x6f, 0xd8, 0xc5, 0x82, 0x43, 0x8c, 0xf7, 0x9a, 0x53, 0xe7, 0x13, 0xea, 0x63, - 0x49, 0x42, 0xe5, 0x8b, 0xa5, 0x2e, 0x7c, 0x71, 0x0e, 0xc0, 0x8f, 0x62, 0x43, 0xf8, 0x96, 0x64, - 0x47, 0x8f, 0x12, 0x11, 0xa2, 0xd4, 0x40, 0x57, 0xc5, 0x09, 0xc2, 0xdd, 0xbd, 0x86, 0x13, 0xa7, - 0xc7, 0x16, 0x0c, 0xbc, 0xee, 0x3a, 0xc4, 0x17, 0x76, 0xcf, 0x53, 0x1a, 0xe0, 0x08, 0x95, 0x0f, - 0x5e, 0xa6, 0x78, 0x31, 0x47, 0xaf, 0xff, 0xb2, 0x06, 0x50, 0x35, 0x02, 0x83, 0xdf, 0x9b, 0x1e, - 0x23, 0xa2, 0xe2, 0x6a, 0xec, 0xe0, 0x1b, 0x4e, 0x79, 0x99, 0xf7, 0xfb, 0xd6, 0xeb, 0x72, 0xf8, - 0xa1, 0x40, 0xcd, 0xb1, 0xd7, 0xad, 0xd7, 0x09, 0x66, 0x70, 0xf4, 0x38, 0x8c, 0x10, 0xc7, 0xf4, - 0xf6, 0xdb, 0x94, 0x79, 0xf7, 0xb3, 0x59, 0x65, 0x3b, 0x74, 0x51, 0x16, 0xe2, 0x08, 0xae, 0x3f, - 0x01, 0x71, 0xad, 0xe8, 0xe8, 0x5e, 0xea, 0xdf, 0xe8, 0x87, 0x07, 0x17, 0xd7, 0x2b, 0x55, 0x81, - 0xcf, 0x72, 0x9d, 0x3b, 0x64, 0xff, 0x3b, 0x0e, 0x6c, 0xdf, 0x71, 0x60, 0x3b, 0x45, 0x07, 0xb6, - 0xe7, 0x60, 0x32, 0x5a, 0x5e, 0xc2, 0xbb, 0xe3, 0xf1, 0xa4, 0x3c, 0x3d, 0x22, 0x4f, 0x9e, 0xb4, - 0x0c, 0xac, 0xdf, 0xd7, 0x60, 0x72, 0x71, 0xaf, 0x6d, 0x79, 0x2c, 0x14, 0x88, 0x78, 0x54, 0x0f, - 0x46, 0x8f, 0xc1, 0xd0, 0x2e, 0xff, 0x57, 0xac, 0xce, 0xd0, 0xd6, 0x20, 0x6a, 0x60, 0x09, 0x47, - 0x5b, 0x30, 0x41, 0x58, 0x73, 0x26, 0xf0, 0x1a, 0x41, 0x91, 0x15, 0xc8, 0x23, 0xcd, 0x62, 0x58, - 0x70, 0x02, 0x2b, 0xaa, 0xc3, 0x84, 0x69, 0x1b, 0xbe, 0x6f, 0x6d, 0x59, 0x66, 0xe4, 0xe4, 0x3a, - 0xb2, 0xf0, 0x38, 0x3b, 0xbb, 0x62, 0x90, 0xfb, 0x07, 0xe5, 0x69, 0xd1, 0xcf, 0x38, 0x00, 0x27, - 0x50, 0xe8, 0x6f, 0x97, 0x60, 0x7c, 0x71, 0xaf, 0xed, 0xfa, 0x1d, 0x8f, 0xb0, 0xaa, 0xe7, 0xa0, - 0xc2, 0x3f, 0x06, 0x43, 0xdb, 0x86, 0xd3, 0xb0, 0x89, 0x27, 0xd8, 0x57, 0x38, 0xb7, 0xb7, 0x79, - 0x31, 0x96, 0x70, 0xf4, 0x06, 0x80, 0x6f, 0x6e, 0x93, 0x46, 0x87, 0x89, 0x40, 0x7c, 0x97, 0xdd, - 0x29, 0xc2, 0x84, 0x63, 0x63, 0xac, 0x87, 0x28, 0xc5, 0xd1, 0x10, 0xfe, 0xc6, 0x0a, 0x39, 0xfd, - 0xeb, 0x1a, 0x4c, 0xc5, 0xda, 0x9d, 0x83, 0x66, 0xba, 0x15, 0xd7, 0x4c, 0xe7, 0x7b, 0x1e, 0x6b, - 0x8e, 0x42, 0xfa, 0xd3, 0x25, 0x78, 0x20, 0x67, 0x4e, 0x52, 0x4e, 0x4b, 0xda, 0x39, 0x39, 0x2d, - 0x75, 0x60, 0x34, 0x70, 0x6d, 0xe1, 0x8b, 0x2d, 0x67, 0xa0, 0x90, 0x4b, 0xd2, 0x7a, 0x88, 0x26, - 0x72, 0x49, 0x8a, 0xca, 0x7c, 0xac, 0xd2, 0xd1, 0x3f, 0xaf, 0xc1, 0x48, 0x68, 0x00, 0xfb, 0xb6, - 0xba, 0x84, 0x3a, 0x7e, 0x70, 0xac, 0xfe, 0x87, 0x25, 0xb8, 0x1c, 0xe2, 0x96, 0x6c, 0xae, 0x1e, - 0x50, 0xbe, 0x71, 0xb4, 0x16, 0x7d, 0x35, 0xe6, 0x4e, 0x39, 0x9c, 0x10, 0x35, 0xa8, 0xe0, 0xd5, - 0xf1, 0xda, 0xae, 0x2f, 0xe5, 0x09, 0x2e, 0x78, 0xf1, 0x22, 0x2c, 0x61, 0x68, 0x15, 0x06, 0x7c, - 0x4a, 0x4f, 0x1c, 0x47, 0x27, 0x9c, 0x0d, 0x26, 0x12, 0xb1, 0xfe, 0x62, 0x8e, 0x06, 0xbd, 0xa1, - 0xf2, 0xf0, 0x81, 0xe2, 0x76, 0x1a, 0x3a, 0x92, 0x86, 0x9c, 0x91, 0x8c, 0x80, 0xb1, 0xcc, 0x33, - 0x61, 0x19, 0x26, 0x85, 0xdf, 0x13, 0x5f, 0x36, 0x8e, 0x49, 0xd0, 0x07, 0x62, 0x2b, 0xe3, 0x91, - 0xc4, 0x35, 0xf4, 0xa5, 0x64, 0xfd, 0x68, 0xc5, 0xe8, 0x3e, 0x0c, 0xdf, 0x12, 0x9d, 0x44, 0xb3, - 0x50, 0xb2, 0xe4, 0xb7, 0x00, 0x81, 0xa3, 0x54, 0xab, 0xe2, 0x92, 0x75, 0x0c, 0xb7, 0x56, 0xf5, - 0x58, 0xea, 0xeb, 0x7e, 0x2c, 0xe9, 0xdf, 0x2c, 0xc1, 0x25, 0x49, 0x55, 0x8e, 0xb1, 0x2a, 0x2e, - 0xf1, 0x8e, 0x10, 0x2e, 0x8f, 0xb6, 0xaa, 0xdc, 0x85, 0x7e, 0xc6, 0x00, 0x0b, 0x5d, 0xee, 0x85, - 0x08, 0x69, 0x77, 0x30, 0x43, 0x84, 0x3e, 0x02, 0x83, 0xb6, 0xb1, 0x49, 0x6c, 0xe9, 0x6f, 0x5a, - 0xc8, 0x06, 0x95, 0x35, 0x5c, 0x6e, 0x1a, 0xf5, 0x79, 0xc0, 0x4e, 0x78, 0xe7, 0xc3, 0x0b, 0xb1, - 0xa0, 0x39, 0xfb, 0x0c, 0x8c, 0x2a, 0xd5, 0xd0, 0x24, 0xf4, 0xed, 0x10, 0x7e, 0xb9, 0x3b, 0x82, - 0xe9, 0xbf, 0xe8, 0x12, 0x0c, 0xec, 0x1a, 0x76, 0x47, 0x4c, 0x09, 0xe6, 0x3f, 0x6e, 0x96, 0x3e, - 0xa0, 0xe9, 0x9f, 0xd3, 0x60, 0xf4, 0xb6, 0xb5, 0x49, 0x3c, 0xee, 0xbc, 0xc4, 0x74, 0xa9, 0x58, - 0x6e, 0x82, 0xd1, 0xac, 0xbc, 0x04, 0x68, 0x0f, 0x46, 0xc4, 0x49, 0x13, 0x3a, 0xce, 0xdf, 0x2a, - 0x76, 0x8b, 0x1c, 0x92, 0x16, 0x1c, 0x5c, 0x8d, 0x85, 0x94, 0x14, 0x70, 0x44, 0x4c, 0x7f, 0x03, - 0x2e, 0x66, 0x34, 0x42, 0x65, 0xb6, 0x7d, 0xbd, 0x40, 0x2c, 0x0b, 0xb9, 0x1f, 0xbd, 0x00, 0xf3, - 0x72, 0xf4, 0x20, 0xf4, 0x11, 0xa7, 0x21, 0xd6, 0xc4, 0xd0, 0xe1, 0x41, 0xb9, 0x6f, 0xd1, 0x69, - 0x60, 0x5a, 0x46, 0xd9, 0x94, 0xed, 0xc6, 0x64, 0x12, 0xc6, 0xa6, 0x96, 0x45, 0x19, 0x0e, 0xa1, - 0xec, 0xde, 0x3f, 0x79, 0xc5, 0x4d, 0xc5, 0xdb, 0xc9, 0xad, 0xc4, 0xee, 0xe9, 0xe5, 0x66, 0x3d, - 0xb9, 0x13, 0x17, 0x66, 0xc4, 0x84, 0xa4, 0xf6, 0x34, 0x4e, 0xd1, 0xd5, 0x7f, 0xbb, 0x1f, 0x1e, - 0xba, 0xed, 0x7a, 0xd6, 0xeb, 0xae, 0x13, 0x18, 0xf6, 0x9a, 0xdb, 0x88, 0xbc, 0x9e, 0x04, 0x53, - 0xfe, 0x49, 0x0d, 0x1e, 0x30, 0xdb, 0x1d, 0x2e, 0x1e, 0x4b, 0xc7, 0xa1, 0x35, 0xe2, 0x59, 0x6e, - 0x51, 0x6f, 0x55, 0x16, 0xfd, 0x5e, 0x59, 0xdb, 0xc8, 0x42, 0x89, 0xf3, 0x68, 0x31, 0xa7, 0xd9, - 0x86, 0x7b, 0xcf, 0x61, 0x9d, 0xab, 0x07, 0x6c, 0x36, 0x5f, 0x8f, 0x3e, 0x42, 0x41, 0xa7, 0xd9, - 0x6a, 0x26, 0x46, 0x9c, 0x43, 0x09, 0x7d, 0x14, 0xa6, 0x2d, 0xde, 0x39, 0x4c, 0x8c, 0x86, 0xe5, - 0x10, 0xdf, 0xe7, 0x1e, 0x77, 0x3d, 0x78, 0x85, 0xd6, 0xb2, 0x10, 0xe2, 0x6c, 0x3a, 0xe8, 0x15, - 0x00, 0x7f, 0xdf, 0x31, 0xc5, 0xfc, 0x17, 0x73, 0x4f, 0xe2, 0x42, 0x60, 0x88, 0x05, 0x2b, 0x18, - 0xa9, 0x2a, 0x11, 0x84, 0x8b, 0x72, 0x90, 0xb9, 0x98, 0x31, 0x55, 0x22, 0x5a, 0x43, 0x11, 0x5c, - 0xff, 0x67, 0x1a, 0x0c, 0x89, 0x0c, 0x1b, 0xe8, 0xbd, 0x09, 0x33, 0x51, 0xc8, 0x7b, 0x12, 0xa6, - 0xa2, 0x7d, 0x76, 0x57, 0x28, 0x4c, 0x84, 0x42, 0x94, 0x28, 0x64, 0x67, 0x10, 0x84, 0x23, 0x7b, - 0x63, 0xec, 0xce, 0x50, 0xda, 0x20, 0x15, 0x62, 0xfa, 0x67, 0x35, 0x98, 0x4a, 0xb5, 0x3a, 0x86, - 0xbc, 0x70, 0x8e, 0x6e, 0x38, 0x5f, 0xed, 0x87, 0x09, 0xe6, 0x32, 0xeb, 0x18, 0x36, 0xb7, 0xe0, - 0x9c, 0x83, 0x82, 0xf2, 0x38, 0x8c, 0x58, 0xad, 0x56, 0x27, 0xa0, 0xac, 0x5a, 0x18, 0xe1, 0xd9, - 0x37, 0xaf, 0xc9, 0x42, 0x1c, 0xc1, 0x91, 0x23, 0x8e, 0x42, 0xce, 0xc4, 0x97, 0x8b, 0x7d, 0x39, - 0x75, 0x80, 0x73, 0xf4, 0xd8, 0xe2, 0xe7, 0x55, 0xd6, 0x49, 0xf9, 0x53, 0x1a, 0x80, 0x1f, 0x78, - 0x96, 0xd3, 0xa4, 0x85, 0xe2, 0xb8, 0xc4, 0xa7, 0x40, 0xb6, 0x1e, 0x22, 0xe5, 0xc4, 0xc3, 0x39, - 0x8a, 0x00, 0x58, 0xa1, 0x8c, 0xe6, 0x85, 0x94, 0xc0, 0x39, 0xfe, 0x77, 0x27, 0xe4, 0xa1, 0x87, - 0xd2, 0x09, 0xa4, 0x44, 0xd4, 0x75, 0x24, 0x46, 0xcc, 0x3e, 0x0d, 0x23, 0x21, 0xbd, 0xa3, 0x4e, - 0xdd, 0x31, 0xe5, 0xd4, 0x9d, 0x7d, 0x16, 0x2e, 0x24, 0xba, 0x7b, 0xa2, 0x43, 0xfb, 0x3f, 0x6a, - 0x80, 0xe2, 0xa3, 0x3f, 0x07, 0xd5, 0xae, 0x19, 0x57, 0xed, 0x16, 0x7a, 0xff, 0x64, 0x39, 0xba, - 0xdd, 0xd7, 0x27, 0x80, 0x25, 0x20, 0x0a, 0x13, 0x3c, 0x89, 0x83, 0x8b, 0x9e, 0xb3, 0x51, 0x9c, - 0x91, 0xd8, 0xb9, 0x3d, 0x9c, 0xb3, 0x77, 0x12, 0xb8, 0xa2, 0x73, 0x36, 0x09, 0xc1, 0x29, 0xba, - 0xe8, 0x4d, 0x0d, 0x26, 0x8d, 0x78, 0x02, 0x22, 0x39, 0x33, 0x85, 0x02, 0xdc, 0x13, 0xc9, 0x8c, - 0xa2, 0xbe, 0x24, 0x00, 0x3e, 0x4e, 0x91, 0x45, 0x4f, 0xc1, 0x98, 0xd1, 0xb6, 0xe6, 0x3b, 0x0d, - 0x8b, 0xaa, 0x06, 0x32, 0x7b, 0x0c, 0x53, 0x57, 0xe7, 0xd7, 0x6a, 0x61, 0x39, 0x8e, 0xd5, 0x0a, - 0x33, 0xfd, 0x88, 0x89, 0xec, 0xef, 0x31, 0xd3, 0x8f, 0x98, 0xc3, 0x28, 0xd3, 0x8f, 0x98, 0x3a, - 0x95, 0x08, 0x72, 0x00, 0x5c, 0xab, 0x61, 0x0a, 0x92, 0xfc, 0xda, 0xaf, 0x90, 0x86, 0x7c, 0xb7, - 0x56, 0xad, 0x08, 0x8a, 0xec, 0xf4, 0x8b, 0x7e, 0x63, 0x85, 0x02, 0xfa, 0x94, 0x06, 0xe3, 0x82, - 0x77, 0x0b, 0x9a, 0x43, 0xec, 0x13, 0xbd, 0x5c, 0x74, 0xbd, 0x24, 0xd6, 0xe4, 0x1c, 0x56, 0x91, - 0x73, 0xbe, 0x13, 0x86, 0xa9, 0xc5, 0x60, 0x38, 0xde, 0x0f, 0xf4, 0x0f, 0x34, 0xb8, 0xe4, 0x13, - 0x6f, 0xd7, 0x32, 0xc9, 0xbc, 0x69, 0xba, 0x1d, 0x47, 0x7e, 0x87, 0xe1, 0xe2, 0x89, 0x51, 0xea, - 0x19, 0xf8, 0x84, 0xe7, 0x74, 0x06, 0x04, 0x67, 0xd2, 0xa7, 0x62, 0xd9, 0x85, 0x7b, 0x46, 0x60, - 0x6e, 0x57, 0x0c, 0x73, 0x9b, 0x19, 0xdb, 0x79, 0x48, 0x44, 0xc1, 0x75, 0xfd, 0x62, 0x1c, 0x15, - 0xbf, 0xb6, 0x4e, 0x14, 0xe2, 0x24, 0x41, 0xe4, 0xc2, 0xb0, 0x27, 0xb2, 0xba, 0xcd, 0x40, 0x71, - 0x91, 0x22, 0x95, 0x22, 0x8e, 0x0b, 0xf6, 0xf2, 0x17, 0x0e, 0x89, 0xa0, 0x26, 0x3c, 0xc4, 0x55, - 0x9b, 0x79, 0xc7, 0x75, 0xf6, 0x5b, 0x6e, 0xc7, 0x9f, 0xef, 0x04, 0xdb, 0xc4, 0x09, 0xa4, 0xad, - 0x72, 0x94, 0x1d, 0xa3, 0x2c, 0x12, 0x60, 0xb1, 0x5b, 0x45, 0xdc, 0x1d, 0x0f, 0x7a, 0x09, 0x86, - 0xc9, 0x2e, 0x71, 0x82, 0xf5, 0xf5, 0x65, 0x16, 0x5d, 0x71, 0x72, 0x69, 0x8f, 0x0d, 0x61, 0x51, - 0xe0, 0xc0, 0x21, 0x36, 0xb4, 0x03, 0x43, 0x36, 0x4f, 0xcb, 0xc7, 0xa2, 0x2c, 0x0a, 0x32, 0xc5, - 0x64, 0x8a, 0x3f, 0xae, 0xff, 0x89, 0x1f, 0x58, 0x52, 0x40, 0x6d, 0xb8, 0xde, 0x20, 0x5b, 0x46, - 0xc7, 0x0e, 0x56, 0xdd, 0x00, 0x33, 0xb7, 0xfb, 0xd0, 0x24, 0x25, 0x03, 0x69, 0x26, 0x58, 0x0e, - 0x03, 0x16, 0xd0, 0x50, 0x3d, 0xa2, 0x2e, 0x3e, 0x12, 0x1b, 0xda, 0x87, 0x87, 0x45, 0x1d, 0xe6, - 0xe7, 0x6f, 0x6e, 0xd3, 0x59, 0x4e, 0x13, 0xbd, 0xc0, 0x88, 0xfe, 0x7f, 0x87, 0x07, 0xe5, 0x87, - 0xab, 0x47, 0x57, 0xc7, 0xc7, 0xc1, 0xc9, 0x5c, 0xa7, 0x49, 0xc2, 0x46, 0x3f, 0x33, 0x59, 0x7c, - 0x8e, 0x93, 0xf6, 0x7e, 0xee, 0x5b, 0x91, 0x2c, 0xc5, 0x29, 0x9a, 0xb3, 0x1f, 0x06, 0x94, 0x66, - 0x38, 0x47, 0x49, 0x0e, 0xc3, 0xaa, 0xe4, 0xf0, 0xe9, 0x01, 0xb8, 0x42, 0xf9, 0x58, 0x24, 0x2f, - 0xaf, 0x18, 0x8e, 0xd1, 0xfc, 0xf6, 0x3c, 0x63, 0x3f, 0xa7, 0xc1, 0x03, 0xdb, 0xd9, 0xba, 0xac, - 0x90, 0xd8, 0x9f, 0x2f, 0x64, 0x73, 0xe8, 0xa6, 0x1e, 0xf3, 0x2d, 0xde, 0xb5, 0x0a, 0xce, 0xeb, - 0x14, 0xfa, 0x30, 0x4c, 0x3a, 0x6e, 0x83, 0x54, 0x6a, 0x55, 0xbc, 0x62, 0xf8, 0x3b, 0x75, 0x79, - 0x87, 0x39, 0xc0, 0xbf, 0xf0, 0x6a, 0x02, 0x86, 0x53, 0xb5, 0xd1, 0x2e, 0xa0, 0xb6, 0xdb, 0x58, - 0xdc, 0xb5, 0x4c, 0x79, 0x7b, 0x56, 0xdc, 0x63, 0x87, 0x5d, 0xd1, 0xad, 0xa5, 0xb0, 0xe1, 0x0c, - 0x0a, 0x4c, 0x19, 0xa7, 0x9d, 0x59, 0x71, 0x1d, 0x2b, 0x70, 0x3d, 0x16, 0xd6, 0xd6, 0x93, 0x4e, - 0xca, 0x94, 0xf1, 0xd5, 0x4c, 0x8c, 0x38, 0x87, 0x92, 0xfe, 0x3f, 0x35, 0xb8, 0x40, 0x97, 0xc5, - 0x9a, 0xe7, 0xee, 0xed, 0x7f, 0x3b, 0x2e, 0xc8, 0xc7, 0x84, 0x3b, 0x07, 0x37, 0x22, 0x4d, 0x2b, - 0xae, 0x1c, 0x23, 0xac, 0xcf, 0x91, 0xf7, 0x86, 0x6a, 0x47, 0xeb, 0xcb, 0xb7, 0xa3, 0xe9, 0x9f, - 0x2a, 0x71, 0x59, 0x57, 0xda, 0xb1, 0xbe, 0x2d, 0xf7, 0xe1, 0xd3, 0x30, 0x4e, 0xcb, 0x56, 0x8c, - 0xbd, 0xb5, 0xea, 0x0b, 0xae, 0x2d, 0x83, 0x92, 0x98, 0xa3, 0xf1, 0x1d, 0x15, 0x80, 0xe3, 0xf5, - 0xd0, 0x4d, 0x18, 0x6a, 0xf3, 0xfc, 0x05, 0x42, 0xcb, 0xba, 0xce, 0x7d, 0x1e, 0x58, 0xd1, 0xfd, - 0x83, 0xf2, 0x54, 0x74, 0x6b, 0x23, 0xb3, 0x28, 0xc8, 0x06, 0xfa, 0xdf, 0x5c, 0x04, 0x86, 0xdc, - 0x26, 0xc1, 0xb7, 0xe3, 0x9c, 0x3c, 0x01, 0xa3, 0x66, 0xbb, 0x53, 0x59, 0xaa, 0x3f, 0xdf, 0x71, - 0x99, 0xf6, 0xcc, 0xf2, 0xb8, 0x52, 0xe1, 0xb7, 0xb2, 0xb6, 0x21, 0x8b, 0xb1, 0x5a, 0x87, 0x72, - 0x07, 0xb3, 0xdd, 0x11, 0xfc, 0x76, 0x4d, 0xf5, 0xb6, 0x65, 0xdc, 0xa1, 0xb2, 0xb6, 0x11, 0x83, - 0xe1, 0x54, 0x6d, 0xf4, 0x51, 0x18, 0x23, 0x62, 0xe3, 0xde, 0x36, 0xbc, 0x86, 0xe0, 0x0b, 0xb5, - 0xa2, 0x83, 0x0f, 0xa7, 0x56, 0x72, 0x03, 0xae, 0x33, 0x2c, 0x2a, 0x24, 0x70, 0x8c, 0x20, 0xfa, - 0x21, 0x78, 0x50, 0xfe, 0xa6, 0x5f, 0xd9, 0x6d, 0x24, 0x19, 0xc5, 0x00, 0x0f, 0x19, 0x5f, 0xcc, - 0xab, 0x84, 0xf3, 0xdb, 0xa3, 0x5f, 0xd3, 0xe0, 0x72, 0x08, 0xb5, 0x1c, 0xab, 0xd5, 0x69, 0x61, - 0x62, 0xda, 0x86, 0xd5, 0x12, 0x9a, 0xc2, 0x8b, 0xa7, 0x36, 0xd0, 0x38, 0x7a, 0xce, 0xac, 0xb2, - 0x61, 0x38, 0xa7, 0x4b, 0xe8, 0xb3, 0x1a, 0x5c, 0x97, 0xa0, 0x35, 0x8f, 0xf8, 0x7e, 0xc7, 0x23, - 0x51, 0x48, 0x9c, 0x98, 0x92, 0xa1, 0x42, 0xbc, 0x93, 0x89, 0x4c, 0x8b, 0x47, 0xe0, 0xc6, 0x47, - 0x52, 0x57, 0x97, 0x4b, 0xdd, 0xdd, 0x0a, 0x84, 0x6a, 0x71, 0x56, 0xcb, 0x85, 0x92, 0xc0, 0x31, - 0x82, 0xe8, 0x9f, 0x6b, 0xf0, 0x80, 0x5a, 0xa0, 0xae, 0x16, 0xae, 0x53, 0xbc, 0x74, 0x6a, 0x9d, - 0x49, 0xe0, 0xe7, 0x46, 0xe9, 0x1c, 0x20, 0xce, 0xeb, 0x15, 0x65, 0xdb, 0x2d, 0xb6, 0x30, 0xb9, - 0xde, 0x31, 0xc0, 0xd9, 0x36, 0x5f, 0xab, 0x3e, 0x96, 0x30, 0xaa, 0x71, 0xb7, 0xdd, 0xc6, 0x9a, - 0xd5, 0xf0, 0x97, 0xad, 0x96, 0x15, 0x30, 0xed, 0xa0, 0x8f, 0x4f, 0xc7, 0x9a, 0xdb, 0x58, 0xab, - 0x55, 0x79, 0x39, 0x8e, 0xd5, 0x42, 0x73, 0x00, 0x5b, 0x86, 0x65, 0xd7, 0xef, 0x19, 0xed, 0xbb, - 0x32, 0x14, 0x9a, 0x69, 0xaf, 0x4b, 0x61, 0x29, 0x56, 0x6a, 0xd0, 0xef, 0x47, 0xf9, 0x0e, 0x26, - 0x3c, 0xd1, 0x17, 0x13, 0xa8, 0x4f, 0xe3, 0xfb, 0x49, 0x84, 0xbc, 0xc3, 0x77, 0x14, 0x12, 0x38, - 0x46, 0x10, 0xfd, 0xa4, 0x06, 0x13, 0xfe, 0xbe, 0x1f, 0x90, 0x56, 0xd8, 0x87, 0x0b, 0xa7, 0xdd, - 0x07, 0x66, 0x45, 0xad, 0xc7, 0x88, 0xe0, 0x04, 0x51, 0x16, 0x54, 0xde, 0x32, 0x9a, 0xe4, 0x56, - 0xe5, 0xb6, 0xd5, 0xdc, 0x0e, 0x83, 0x9c, 0xd7, 0x88, 0x67, 0x12, 0x27, 0x60, 0xa2, 0xf8, 0x80, - 0x08, 0x2a, 0xcf, 0xaf, 0x86, 0xbb, 0xe1, 0x40, 0xaf, 0xc0, 0xac, 0x00, 0x2f, 0xbb, 0xf7, 0x52, - 0x14, 0xa6, 0x18, 0x05, 0xe6, 0x76, 0x54, 0xcb, 0xad, 0x85, 0xbb, 0x60, 0x40, 0x35, 0xb8, 0xe8, - 0x13, 0x8f, 0x5d, 0x82, 0xf0, 0x4c, 0x35, 0x6b, 0x1d, 0xdb, 0xf6, 0x67, 0x50, 0xe4, 0x71, 0x5c, - 0x4f, 0x83, 0x71, 0x56, 0x1b, 0xf4, 0x6c, 0x18, 0xd4, 0xb4, 0x4f, 0x0b, 0x9e, 0x5f, 0xab, 0xcf, - 0x5c, 0x64, 0xfd, 0xbb, 0xa8, 0xc4, 0x2a, 0x49, 0x10, 0x4e, 0xd6, 0xa5, 0xa7, 0xb9, 0x2c, 0x5a, - 0xe8, 0x78, 0x7e, 0x30, 0x73, 0x89, 0x35, 0x66, 0xa7, 0x39, 0x56, 0x01, 0x38, 0x5e, 0x0f, 0xdd, - 0x84, 0x09, 0x9f, 0x98, 0xa6, 0xdb, 0x6a, 0x0b, 0xcd, 0x6a, 0x66, 0x9a, 0xf5, 0x9e, 0x7f, 0xc1, - 0x18, 0x04, 0x27, 0x6a, 0xa2, 0x7d, 0xb8, 0x18, 0xa6, 0xbd, 0x5a, 0x76, 0x9b, 0x2b, 0xc6, 0x1e, - 0x13, 0x8e, 0x2f, 0x1f, 0xcd, 0x1f, 0xe7, 0xe4, 0xad, 0xf6, 0xdc, 0xf3, 0x1d, 0xc3, 0x09, 0xac, - 0x60, 0x9f, 0x4f, 0x57, 0x25, 0x8d, 0x0e, 0x67, 0xd1, 0x40, 0xcb, 0x70, 0x29, 0x51, 0xbc, 0x64, - 0xd9, 0xc4, 0x9f, 0x79, 0x80, 0x0d, 0x9b, 0x99, 0x47, 0x2a, 0x19, 0x70, 0x9c, 0xd9, 0x0a, 0xdd, - 0x85, 0xe9, 0xb6, 0xe7, 0x06, 0xc4, 0x0c, 0xee, 0x50, 0x81, 0xc0, 0x16, 0x03, 0xf4, 0x67, 0x66, - 0xd8, 0x5c, 0xb0, 0x0b, 0xa0, 0xb5, 0xac, 0x0a, 0x38, 0xbb, 0x1d, 0xfa, 0xb4, 0x06, 0xd7, 0xfc, - 0xc0, 0x23, 0x46, 0xcb, 0x72, 0x9a, 0x15, 0xd7, 0x71, 0x08, 0x63, 0x4c, 0xb5, 0x46, 0xe4, 0xb0, - 0xff, 0x60, 0xa1, 0x53, 0x44, 0x3f, 0x3c, 0x28, 0x5f, 0xab, 0x77, 0xc5, 0x8c, 0x8f, 0xa0, 0x8c, - 0xde, 0x00, 0x68, 0x91, 0x96, 0xeb, 0xed, 0x53, 0x8e, 0x34, 0x33, 0x5b, 0xdc, 0x7f, 0x69, 0x25, - 0xc4, 0xc2, 0xb7, 0x7f, 0xec, 0xea, 0x2a, 0x02, 0x62, 0x85, 0x9c, 0x7e, 0x50, 0x82, 0xe9, 0x4c, - 0x56, 0x4f, 0x77, 0x00, 0xaf, 0x37, 0x2f, 0x53, 0x60, 0x8b, 0xdb, 0x1e, 0xb6, 0x03, 0x56, 0xe2, - 0x20, 0x9c, 0xac, 0x4b, 0x05, 0x31, 0xb6, 0x53, 0x97, 0xea, 0x51, 0xfb, 0x52, 0x24, 0x88, 0xd5, - 0x12, 0x30, 0x9c, 0xaa, 0x8d, 0x2a, 0x30, 0x25, 0xca, 0x6a, 0x54, 0x97, 0xf1, 0x97, 0x3c, 0x22, - 0x45, 0x5c, 0xaa, 0x15, 0x4c, 0xd5, 0x92, 0x40, 0x9c, 0xae, 0x4f, 0x47, 0x41, 0x7f, 0xa8, 0xbd, - 0xe8, 0x8f, 0x46, 0xb1, 0x1a, 0x07, 0xe1, 0x64, 0x5d, 0xa9, 0x6c, 0xc6, 0xba, 0x30, 0x10, 0x8d, - 0x62, 0x35, 0x01, 0xc3, 0xa9, 0xda, 0xfa, 0x7f, 0xea, 0x87, 0x87, 0x8f, 0x21, 0x1e, 0xa1, 0x56, - 0xf6, 0x74, 0x9f, 0x7c, 0xe3, 0x1e, 0xef, 0xf3, 0xb4, 0x73, 0x3e, 0xcf, 0xc9, 0xe9, 0x1d, 0xf7, - 0x73, 0xfa, 0x79, 0x9f, 0xf3, 0xe4, 0x24, 0x8f, 0xff, 0xf9, 0x5b, 0xd9, 0x9f, 0xbf, 0xe0, 0xac, - 0x1e, 0xb9, 0x5c, 0xda, 0x39, 0xcb, 0xa5, 0xe0, 0xac, 0x1e, 0x63, 0x79, 0xfd, 0x71, 0x3f, 0x3c, - 0x72, 0x1c, 0x51, 0xad, 0xe0, 0xfa, 0xca, 0x60, 0x79, 0x67, 0xba, 0xbe, 0xf2, 0x62, 0xa2, 0xce, - 0x70, 0x7d, 0x65, 0x90, 0x3c, 0xeb, 0xf5, 0x95, 0x37, 0xab, 0x67, 0xb5, 0xbe, 0xf2, 0x66, 0xf5, - 0x18, 0xeb, 0xeb, 0x2f, 0x92, 0xe7, 0x43, 0x28, 0x2f, 0xd6, 0xa0, 0xcf, 0x6c, 0x77, 0x0a, 0x32, - 0x29, 0xe6, 0x1b, 0x54, 0x59, 0xdb, 0xc0, 0x14, 0x07, 0xc2, 0x30, 0xc8, 0xd7, 0x4f, 0x41, 0x16, - 0xc4, 0xa2, 0x6b, 0xf8, 0x92, 0xc4, 0x02, 0x13, 0x9d, 0x2a, 0xd2, 0xde, 0x26, 0x2d, 0xe2, 0x19, - 0x76, 0x3d, 0x70, 0x3d, 0xa3, 0x59, 0x94, 0xdb, 0x70, 0xc3, 0x71, 0x02, 0x17, 0x4e, 0x61, 0xa7, - 0x13, 0xd2, 0xb6, 0x1a, 0x05, 0xf9, 0x0b, 0x9b, 0x90, 0xb5, 0x5a, 0x15, 0x53, 0x1c, 0xfa, 0x17, - 0x87, 0x41, 0xc9, 0xfc, 0x88, 0xde, 0xd2, 0x60, 0xca, 0x4c, 0xe6, 0x57, 0xea, 0xc5, 0x0d, 0x24, - 0x95, 0xac, 0x89, 0x2f, 0xf9, 0x54, 0x31, 0x4e, 0x93, 0x45, 0x3f, 0xae, 0x71, 0x4b, 0x55, 0x78, - 0x89, 0x21, 0xa6, 0xf5, 0xd6, 0x29, 0x5d, 0xf7, 0x45, 0x26, 0xaf, 0xe8, 0x66, 0x29, 0x4e, 0x10, - 0x7d, 0x56, 0x83, 0xe9, 0x9d, 0x2c, 0x03, 0xbb, 0x98, 0xfc, 0xbb, 0x45, 0xbb, 0x92, 0x63, 0xb1, - 0xe7, 0x12, 0x67, 0x66, 0x05, 0x9c, 0xdd, 0x91, 0x70, 0x96, 0x42, 0x9b, 0xa3, 0xd8, 0xa7, 0x85, - 0x67, 0x29, 0x61, 0xbc, 0x8c, 0x66, 0x29, 0x04, 0xe0, 0x38, 0x41, 0xd4, 0x86, 0x91, 0x1d, 0x69, - 0xe8, 0x15, 0xc6, 0x9d, 0x4a, 0x51, 0xea, 0x8a, 0xb5, 0x98, 0xbb, 0xb9, 0x84, 0x85, 0x38, 0x22, - 0x82, 0xb6, 0x61, 0x68, 0x87, 0xf3, 0x0a, 0x61, 0x94, 0x99, 0xef, 0x59, 0x85, 0xe5, 0xb6, 0x01, - 0x51, 0x84, 0x25, 0x7a, 0xd5, 0xc7, 0x75, 0xf8, 0x88, 0xd0, 0x8b, 0x4f, 0x6b, 0x30, 0xbd, 0x4b, - 0xbc, 0xc0, 0x32, 0x93, 0xd7, 0x1b, 0x23, 0xc5, 0xd5, 0xec, 0x17, 0xb2, 0x10, 0xf2, 0x65, 0x92, - 0x09, 0xc2, 0xd9, 0x5d, 0xa0, 0x4a, 0x37, 0xb7, 0x52, 0xd7, 0x03, 0x23, 0xb0, 0xcc, 0x75, 0x77, - 0x87, 0x38, 0xd1, 0x03, 0x45, 0xcc, 0x3c, 0x22, 0x32, 0xb9, 0x2d, 0xe6, 0x57, 0xc3, 0xdd, 0x70, - 0xe8, 0x7f, 0xaa, 0x41, 0xca, 0xd6, 0x8a, 0x7e, 0x4e, 0x83, 0xb1, 0x2d, 0x62, 0x04, 0x1d, 0x8f, - 0xdc, 0x32, 0x82, 0x30, 0xa0, 0xfc, 0x85, 0xd3, 0x30, 0xf1, 0xce, 0x2d, 0x29, 0x88, 0xf9, 0x75, - 0x7d, 0x98, 0xd8, 0x55, 0x05, 0xe1, 0x58, 0x0f, 0x66, 0x9f, 0x83, 0xa9, 0x54, 0xc3, 0x13, 0x5d, - 0xbb, 0xfd, 0x6b, 0x0d, 0xb2, 0xde, 0xd4, 0x42, 0xaf, 0xc0, 0x80, 0xd1, 0x68, 0x84, 0x8f, 0x64, - 0x3c, 0x53, 0xcc, 0x73, 0xa4, 0xa1, 0xc6, 0xed, 0xb3, 0x9f, 0x98, 0xa3, 0x45, 0x4b, 0x80, 0x8c, - 0xd8, 0xfd, 0xf3, 0x4a, 0x14, 0x8d, 0xca, 0xae, 0x87, 0xe6, 0x53, 0x50, 0x9c, 0xd1, 0x42, 0xff, - 0x69, 0x0d, 0x50, 0x3a, 0x15, 0x30, 0xf2, 0x60, 0x58, 0x2c, 0x65, 0xf9, 0x95, 0xaa, 0x05, 0x03, - 0x3e, 0x62, 0xd1, 0x4b, 0x91, 0x1b, 0x92, 0x28, 0xf0, 0x71, 0x48, 0x47, 0xff, 0x2b, 0x0d, 0xa2, - 0x44, 0xfa, 0xe8, 0xfd, 0x30, 0xda, 0x20, 0xbe, 0xe9, 0x59, 0xed, 0x20, 0x8a, 0x75, 0x0a, 0x63, - 0x26, 0xaa, 0x11, 0x08, 0xab, 0xf5, 0x90, 0x0e, 0x83, 0x81, 0xe1, 0xef, 0xd4, 0xaa, 0x42, 0xef, - 0x63, 0xa7, 0xf4, 0x3a, 0x2b, 0xc1, 0x02, 0x12, 0x65, 0x04, 0xeb, 0x3b, 0x46, 0x46, 0x30, 0xb4, - 0x75, 0x0a, 0xe9, 0xcf, 0xd0, 0xd1, 0xa9, 0xcf, 0xf4, 0x5f, 0x2d, 0xc1, 0x05, 0x5a, 0x65, 0xc5, - 0xb0, 0x9c, 0x80, 0x38, 0xcc, 0xb3, 0xbf, 0xe0, 0x24, 0x34, 0x61, 0x3c, 0x88, 0x85, 0xbe, 0x9d, - 0x3c, 0xee, 0x2b, 0xf4, 0x75, 0x89, 0x07, 0xbc, 0xc5, 0xf1, 0xa2, 0x67, 0x64, 0x68, 0x05, 0xd7, - 0x90, 0x1f, 0x96, 0x4b, 0x95, 0xc5, 0x4b, 0xdc, 0x17, 0x71, 0x84, 0xe1, 0xeb, 0x0b, 0xb1, 0x28, - 0x8a, 0xa7, 0x61, 0x5c, 0xb8, 0x38, 0xf3, 0xd4, 0x6e, 0x42, 0x43, 0x66, 0x27, 0xcc, 0x92, 0x0a, - 0xc0, 0xf1, 0x7a, 0xfa, 0x57, 0x4a, 0x10, 0x7f, 0xe3, 0xa1, 0xe8, 0x2c, 0xa5, 0xf3, 0xda, 0x95, - 0xce, 0x2c, 0xaf, 0xdd, 0xfb, 0xd8, 0x03, 0x49, 0xfc, 0x25, 0x3d, 0x7e, 0x6f, 0xac, 0x3e, 0x6b, - 0xc4, 0xdf, 0xc1, 0x0b, 0x6b, 0x44, 0xd3, 0xda, 0x7f, 0xe2, 0x69, 0x7d, 0xbf, 0xf0, 0x7d, 0x1c, - 0x88, 0x65, 0x17, 0x94, 0xbe, 0x8f, 0x53, 0xb1, 0x86, 0x4a, 0x20, 0xc8, 0x17, 0x35, 0x18, 0x12, - 0xf9, 0xaf, 0x8f, 0x11, 0x68, 0xb4, 0x05, 0x03, 0x4c, 0x2b, 0xe9, 0x45, 0x1a, 0xac, 0x6f, 0xbb, - 0x6e, 0x10, 0xcb, 0x02, 0xce, 0x3c, 0xfb, 0xd9, 0xbf, 0x98, 0xa3, 0x67, 0xee, 0x6f, 0x9e, 0xb9, - 0x6d, 0x05, 0xc4, 0x0c, 0x64, 0x6e, 0x61, 0xe9, 0xfe, 0xa6, 0x94, 0xe3, 0x58, 0x2d, 0xfd, 0x33, - 0xfd, 0x70, 0x5d, 0x20, 0x4e, 0x89, 0x48, 0x21, 0x83, 0xdb, 0x87, 0x8b, 0xe2, 0xdb, 0x56, 0x3d, - 0xc3, 0x0a, 0xef, 0xe3, 0x8b, 0x69, 0xa7, 0xe2, 0xb5, 0xc8, 0x14, 0x3a, 0x9c, 0x45, 0x83, 0x67, - 0xb0, 0x64, 0xc5, 0xb7, 0x89, 0x61, 0x07, 0xdb, 0x92, 0x76, 0xa9, 0x97, 0x0c, 0x96, 0x69, 0x7c, - 0x38, 0x93, 0x0a, 0xf3, 0x07, 0x10, 0x80, 0x8a, 0x47, 0x0c, 0xd5, 0x19, 0xa1, 0x07, 0xe7, 0xfc, - 0x95, 0x4c, 0x8c, 0x38, 0x87, 0x12, 0x33, 0xf3, 0x19, 0x7b, 0xcc, 0x6a, 0x80, 0x49, 0xe0, 0x59, - 0x2c, 0x9b, 0x7b, 0x68, 0xe8, 0x5e, 0x89, 0x83, 0x70, 0xb2, 0x2e, 0xba, 0x09, 0x13, 0xcc, 0xbf, - 0x22, 0xca, 0x64, 0x35, 0x10, 0x25, 0x4b, 0x58, 0x8d, 0x41, 0x70, 0xa2, 0xa6, 0xfe, 0xb1, 0x12, - 0x8c, 0xa9, 0xcb, 0xee, 0x18, 0x51, 0x47, 0x1d, 0xe5, 0x30, 0xec, 0x21, 0x22, 0x46, 0xa5, 0x7a, - 0x8c, 0xf3, 0x10, 0xbd, 0x04, 0x13, 0x1d, 0xc6, 0x41, 0x64, 0x36, 0x0e, 0xb1, 0xfe, 0xbf, 0x87, - 0x8e, 0x72, 0x23, 0x06, 0xb9, 0x7f, 0x50, 0x9e, 0x55, 0xd1, 0xc7, 0xa1, 0x38, 0x81, 0x47, 0xff, - 0x44, 0x1f, 0x5c, 0xcc, 0xe8, 0x0d, 0xbb, 0x87, 0x27, 0x89, 0x23, 0xbb, 0x97, 0x7b, 0xf8, 0xd4, - 0xf1, 0x1f, 0xde, 0xc3, 0x27, 0x21, 0x38, 0x45, 0x17, 0xbd, 0x00, 0x7d, 0xa6, 0x67, 0x89, 0x09, - 0x7f, 0xba, 0x90, 0xc2, 0x89, 0x6b, 0x0b, 0xa3, 0x82, 0x62, 0x5f, 0x05, 0xd7, 0x30, 0x45, 0x48, - 0x0f, 0x1e, 0x95, 0x5d, 0x48, 0x29, 0x80, 0x1d, 0x3c, 0x2a, 0x57, 0xf1, 0x71, 0xbc, 0x1e, 0x7a, - 0x09, 0x66, 0x84, 0x26, 0x20, 0x23, 0x98, 0x5d, 0xc7, 0x0f, 0xe8, 0xce, 0x0e, 0x04, 0xa3, 0xbe, - 0x7a, 0x78, 0x50, 0x9e, 0xb9, 0x93, 0x53, 0x07, 0xe7, 0xb6, 0xd6, 0xff, 0xbc, 0x0f, 0x46, 0x95, - 0xd7, 0x07, 0xd0, 0x4a, 0x2f, 0x56, 0x8e, 0x68, 0xc4, 0xd2, 0xd2, 0xb1, 0x02, 0x7d, 0xcd, 0x76, - 0xa7, 0xa0, 0x99, 0x23, 0x44, 0x77, 0x8b, 0xa2, 0x6b, 0xb6, 0x3b, 0xe8, 0x85, 0xd0, 0x70, 0x52, - 0xcc, 0xb4, 0x11, 0xc6, 0x9b, 0x24, 0x8c, 0x27, 0x72, 0x23, 0xf6, 0xe7, 0x6e, 0xc4, 0x16, 0x0c, - 0xf9, 0xc2, 0xaa, 0x32, 0x50, 0x3c, 0xe9, 0x8c, 0x32, 0xd3, 0xc2, 0x8a, 0xc2, 0xf5, 0x3d, 0x69, - 0x64, 0x91, 0x34, 0xa8, 0x2c, 0xd9, 0x61, 0x51, 0xac, 0x4c, 0x91, 0x1d, 0xe6, 0xb2, 0xe4, 0x06, - 0x2b, 0xc1, 0x02, 0x92, 0x3a, 0xa2, 0x86, 0x8e, 0x75, 0x44, 0xfd, 0xbd, 0x12, 0xa0, 0x74, 0x37, - 0xd0, 0xc3, 0x30, 0xc0, 0xa2, 0xe0, 0x05, 0x2f, 0x0a, 0x25, 0x7f, 0x16, 0x07, 0x8d, 0x39, 0x0c, - 0xd5, 0x45, 0x0a, 0x8d, 0x62, 0x9f, 0x93, 0x39, 0xb2, 0x08, 0x7a, 0x4a, 0xbe, 0x8d, 0xeb, 0xb1, - 0x90, 0x89, 0xac, 0x33, 0x7f, 0x03, 0x86, 0x5a, 0x96, 0xc3, 0xee, 0xf6, 0x8a, 0x19, 0x9b, 0xf8, - 0x7d, 0x3b, 0x47, 0x81, 0x25, 0x2e, 0xfd, 0x8f, 0x4b, 0x74, 0xe9, 0x47, 0x12, 0xef, 0x3e, 0x80, - 0xd1, 0x09, 0x5c, 0xce, 0xc0, 0xc4, 0x0e, 0xa8, 0x15, 0xfb, 0xca, 0x21, 0xd2, 0xf9, 0x10, 0x21, - 0xbf, 0x95, 0x8a, 0x7e, 0x63, 0x85, 0x18, 0x25, 0x1d, 0x58, 0x2d, 0xf2, 0xa2, 0xe5, 0x34, 0xdc, - 0x7b, 0x62, 0x7a, 0x7b, 0x25, 0xbd, 0x1e, 0x22, 0xe4, 0xa4, 0xa3, 0xdf, 0x58, 0x21, 0x46, 0x59, - 0x0b, 0x53, 0x9c, 0x1d, 0xf6, 0x1c, 0x8c, 0xe8, 0x9b, 0x6b, 0xdb, 0xf2, 0x54, 0x1e, 0xe6, 0xac, - 0xa5, 0x92, 0x53, 0x07, 0xe7, 0xb6, 0xd6, 0x7f, 0x4d, 0x83, 0xe9, 0xcc, 0xa9, 0x40, 0xb7, 0x60, - 0x2a, 0xf2, 0x7d, 0x52, 0x99, 0xfd, 0x70, 0xf4, 0xc6, 0xd1, 0x9d, 0x64, 0x05, 0x9c, 0x6e, 0xc3, - 0x1f, 0xd2, 0x4e, 0x1d, 0x26, 0xc2, 0x71, 0x4a, 0x15, 0x8d, 0x54, 0x30, 0xce, 0x6a, 0xa3, 0xff, - 0x50, 0xac, 0xb3, 0xd1, 0x64, 0xd1, 0x9d, 0xb1, 0x49, 0x9a, 0x61, 0xc8, 0x5a, 0xb8, 0x33, 0x16, - 0x68, 0x21, 0xe6, 0x30, 0xf4, 0x90, 0x1a, 0x08, 0x1a, 0xf2, 0x2d, 0x19, 0x0c, 0xaa, 0xff, 0x08, - 0x3c, 0x90, 0x73, 0x59, 0x89, 0xaa, 0x30, 0xe6, 0xdf, 0x33, 0xda, 0x0b, 0x64, 0xdb, 0xd8, 0xb5, - 0x44, 0x62, 0x01, 0xee, 0xd3, 0x36, 0x56, 0x57, 0xca, 0xef, 0x27, 0x7e, 0xe3, 0x58, 0x2b, 0x3d, - 0x00, 0x10, 0xbe, 0x8f, 0x96, 0xd3, 0x44, 0x5b, 0x30, 0x6c, 0x88, 0x77, 0x9c, 0xc5, 0x3a, 0xfe, - 0xfe, 0x42, 0x46, 0x00, 0x81, 0x83, 0x7b, 0x87, 0xcb, 0x5f, 0x38, 0xc4, 0xad, 0xff, 0x13, 0x0d, - 0x2e, 0x67, 0x87, 0x92, 0x1f, 0x43, 0xb4, 0x69, 0xc1, 0xa8, 0x17, 0x35, 0x13, 0x8b, 0xfe, 0xfb, - 0xd4, 0x64, 0xa4, 0x4a, 0xf6, 0x2d, 0x2a, 0xf6, 0x55, 0x3c, 0xd7, 0x97, 0x5f, 0x3e, 0x99, 0x9f, - 0x34, 0x54, 0xb9, 0x94, 0x9e, 0x60, 0x15, 0x3f, 0xcb, 0x15, 0x4c, 0xa9, 0xfb, 0x6d, 0xc3, 0x24, - 0x8d, 0x73, 0x7e, 0x18, 0xeb, 0x14, 0x12, 0x74, 0x66, 0xf7, 0xfd, 0x6c, 0x73, 0x05, 0xe7, 0xd0, - 0x3c, 0x3a, 0x57, 0x70, 0x76, 0xc3, 0x77, 0x48, 0x12, 0xcb, 0xec, 0xce, 0xe7, 0xc4, 0x95, 0xbd, - 0x39, 0x98, 0x37, 0xda, 0x13, 0xbe, 0xae, 0xb5, 0x7b, 0x86, 0xaf, 0x6b, 0x4d, 0x7c, 0xe7, 0x65, - 0xad, 0x8c, 0x97, 0xb5, 0x94, 0xe7, 0xae, 0x06, 0xce, 0xf0, 0xb9, 0xab, 0xc4, 0xa3, 0x52, 0x83, - 0xe7, 0xf3, 0xa8, 0x14, 0x7a, 0x0d, 0x06, 0xdb, 0x86, 0x47, 0x1c, 0x79, 0x35, 0x51, 0xeb, 0xf5, - 0xc5, 0xba, 0x88, 0xd9, 0x86, 0x3b, 0x7f, 0x8d, 0x11, 0xc0, 0x82, 0x90, 0xfe, 0x97, 0x1a, 0x5c, - 0xed, 0xc6, 0x32, 0x98, 0x92, 0x67, 0x26, 0xb6, 0x48, 0x2f, 0x4a, 0x5e, 0x8a, 0x13, 0x86, 0x4a, - 0x5e, 0x12, 0x82, 0x53, 0x74, 0x73, 0xde, 0x48, 0x2d, 0x15, 0x79, 0x23, 0x55, 0xff, 0xed, 0x12, - 0xc0, 0x2a, 0x09, 0xee, 0xb9, 0xde, 0x0e, 0x3d, 0x7f, 0xaf, 0xc6, 0xcc, 0x58, 0xc3, 0xdf, 0xba, - 0x5c, 0x39, 0x57, 0xa1, 0xbf, 0xed, 0x36, 0x7c, 0x21, 0x5b, 0xb3, 0x8e, 0x30, 0x9f, 0x53, 0x56, - 0x8a, 0xca, 0x30, 0xc0, 0x2e, 0xbe, 0x85, 0xda, 0xc3, 0x8c, 0x60, 0xab, 0xb4, 0x00, 0xf3, 0x72, - 0xfe, 0xf4, 0x2b, 0x0b, 0xe7, 0xf3, 0x85, 0x55, 0x4f, 0x3c, 0xfd, 0xca, 0xcb, 0x70, 0x08, 0x45, - 0x37, 0x01, 0xac, 0xf6, 0x92, 0xd1, 0xb2, 0x6c, 0x4b, 0xac, 0xf1, 0x11, 0x66, 0x9d, 0x81, 0xda, - 0x9a, 0x2c, 0xbd, 0x7f, 0x50, 0x1e, 0x16, 0xbf, 0xf6, 0xb1, 0x52, 0x5b, 0xff, 0xeb, 0x3e, 0x18, - 0x5b, 0x6d, 0x5a, 0xce, 0x9e, 0xcc, 0x12, 0x10, 0x5e, 0x60, 0x68, 0x67, 0x73, 0x81, 0xf1, 0x12, - 0xcc, 0xd8, 0xae, 0xd1, 0x58, 0x30, 0x6c, 0x2a, 0xea, 0x79, 0x75, 0x2e, 0x23, 0x18, 0x4e, 0x53, - 0xa4, 0x1d, 0x11, 0xda, 0xf4, 0x72, 0x4e, 0x1d, 0x9c, 0xdb, 0x1a, 0x05, 0x30, 0x68, 0xca, 0x17, - 0x1e, 0x0a, 0x47, 0xbe, 0xab, 0x73, 0x31, 0xa7, 0x06, 0x81, 0x86, 0xfb, 0x4e, 0x7c, 0x6d, 0x41, - 0x0b, 0x7d, 0x5c, 0x83, 0x69, 0xb2, 0xc7, 0x83, 0xa0, 0xd7, 0x3d, 0x63, 0x6b, 0xcb, 0x32, 0x45, - 0x24, 0x00, 0xff, 0xb0, 0xcb, 0x87, 0x07, 0xe5, 0xe9, 0xc5, 0xac, 0x0a, 0xf7, 0x0f, 0xca, 0x37, - 0x32, 0x63, 0xd2, 0xd9, 0x67, 0xcd, 0x6c, 0x82, 0xb3, 0x49, 0xcd, 0x3e, 0x03, 0xa3, 0x27, 0x88, - 0x1f, 0x8b, 0x45, 0x9e, 0xff, 0x4e, 0x09, 0xc6, 0xe8, 0xba, 0x5b, 0x76, 0x4d, 0xc3, 0xae, 0xae, - 0xd6, 0xd1, 0x63, 0xc9, 0x7c, 0x31, 0x21, 0x77, 0x4d, 0xe5, 0x8c, 0x59, 0x86, 0x4b, 0x5b, 0xae, - 0x67, 0x92, 0xf5, 0xca, 0xda, 0xba, 0x2b, 0xee, 0xf3, 0xab, 0xab, 0x75, 0xa1, 0x02, 0x30, 0x0b, - 0xe5, 0x52, 0x06, 0x1c, 0x67, 0xb6, 0x42, 0x77, 0x61, 0x3a, 0x2a, 0xdf, 0x68, 0x73, 0x47, 0x46, - 0x8a, 0xae, 0x2f, 0x72, 0xc4, 0x5c, 0xca, 0xaa, 0x80, 0xb3, 0xdb, 0x21, 0x03, 0xae, 0x88, 0x74, - 0x54, 0x4b, 0xae, 0x77, 0xcf, 0xf0, 0x1a, 0x71, 0xb4, 0xfd, 0xd1, 0x7d, 0x67, 0x35, 0xbf, 0x1a, - 0xee, 0x86, 0x43, 0xff, 0xc5, 0x41, 0x50, 0x22, 0x95, 0x4f, 0x20, 0x71, 0xfc, 0x8a, 0x06, 0x97, - 0x4c, 0xdb, 0x22, 0x4e, 0x90, 0x08, 0x4b, 0xe5, 0xec, 0x68, 0xa3, 0x50, 0x08, 0x75, 0x9b, 0x38, - 0xb5, 0xaa, 0xf0, 0xfb, 0xac, 0x64, 0x20, 0x17, 0xbe, 0xb1, 0x19, 0x10, 0x9c, 0xd9, 0x19, 0x36, - 0x1e, 0x56, 0x5e, 0xab, 0xaa, 0x79, 0x74, 0x2a, 0xa2, 0x0c, 0x87, 0x50, 0xf4, 0x04, 0x8c, 0x36, - 0x3d, 0xb7, 0xd3, 0xf6, 0x2b, 0x2c, 0xbc, 0x83, 0xaf, 0x7d, 0x66, 0x74, 0xb8, 0x15, 0x15, 0x63, - 0xb5, 0x0e, 0x7a, 0x0a, 0xc6, 0xf8, 0xcf, 0x35, 0x8f, 0x6c, 0x59, 0x7b, 0x82, 0xc9, 0x31, 0x13, - 0xca, 0x2d, 0xa5, 0x1c, 0xc7, 0x6a, 0xb1, 0x54, 0x18, 0xbe, 0xdf, 0x21, 0xde, 0x06, 0x5e, 0x16, - 0x6f, 0x00, 0xf1, 0x54, 0x18, 0xb2, 0x10, 0x47, 0x70, 0xf4, 0x49, 0x0d, 0x26, 0x3c, 0xf2, 0x5a, - 0xc7, 0xf2, 0xe8, 0x91, 0x68, 0x58, 0x2d, 0x5f, 0x84, 0x8b, 0xe3, 0xde, 0x42, 0xd4, 0xe7, 0x70, - 0x0c, 0x29, 0xe7, 0x10, 0xe1, 0x9d, 0x50, 0x1c, 0x88, 0x13, 0x3d, 0xa0, 0x53, 0xe5, 0x5b, 0x4d, - 0xc7, 0x72, 0x9a, 0xf3, 0x76, 0xd3, 0x9f, 0x19, 0x66, 0x4c, 0x8f, 0xdb, 0x67, 0xa2, 0x62, 0xac, - 0xd6, 0x41, 0x4f, 0xc3, 0x78, 0xc7, 0xa7, 0xfb, 0xbe, 0x45, 0xf8, 0xfc, 0x8e, 0x44, 0x97, 0x66, - 0x1b, 0x2a, 0x00, 0xc7, 0xeb, 0xa1, 0x9b, 0x30, 0x21, 0x0b, 0xc4, 0x2c, 0x03, 0xcf, 0xc0, 0xca, - 0x6c, 0xc9, 0x31, 0x08, 0x4e, 0xd4, 0x9c, 0x9d, 0x87, 0x8b, 0x19, 0xc3, 0x3c, 0x11, 0x73, 0xf9, - 0x1b, 0x0d, 0xa6, 0xf9, 0x29, 0x2e, 0x5f, 0x0f, 0x92, 0xa9, 0x56, 0xb3, 0xb3, 0x96, 0x6a, 0x67, - 0x9a, 0xb5, 0xf4, 0x5b, 0x90, 0x9d, 0x55, 0xff, 0x47, 0x25, 0x78, 0xf7, 0x91, 0xfb, 0x12, 0xfd, - 0x43, 0x0d, 0x46, 0xc9, 0x5e, 0xe0, 0x19, 0x61, 0x0c, 0x1c, 0x5d, 0xa4, 0x5b, 0x67, 0xc2, 0x04, - 0xe6, 0x16, 0x23, 0x42, 0x7c, 0xe1, 0x86, 0xf2, 0xac, 0x02, 0xc1, 0x6a, 0x7f, 0x90, 0x0e, 0x83, - 0x3c, 0x43, 0xb1, 0x7a, 0xbb, 0xce, 0x53, 0x7e, 0x60, 0x01, 0x99, 0xfd, 0x10, 0x4c, 0x26, 0x31, - 0x9f, 0x68, 0xad, 0xfc, 0x56, 0x09, 0x86, 0xd6, 0x3c, 0x97, 0x2a, 0xf0, 0xe7, 0x60, 0x14, 0x30, - 0x62, 0x46, 0x81, 0x42, 0x2a, 0x8f, 0xe8, 0x6c, 0xae, 0x15, 0xc0, 0x4a, 0x58, 0x01, 0xe6, 0x7b, - 0x21, 0xd2, 0x5d, 0xed, 0xff, 0x92, 0x06, 0xa3, 0xa2, 0xe6, 0x39, 0xe8, 0xf9, 0x3f, 0x1a, 0xd7, - 0xf3, 0x3f, 0xd8, 0xc3, 0xb8, 0x72, 0x14, 0xfb, 0x4f, 0x6b, 0x30, 0x2e, 0x6a, 0xac, 0x90, 0xd6, - 0x26, 0xf1, 0xd0, 0x12, 0x0c, 0xf9, 0x1d, 0xf6, 0x21, 0xc5, 0x80, 0xae, 0xa8, 0xc6, 0x2a, 0x6f, - 0xd3, 0x30, 0x69, 0xf7, 0xeb, 0xbc, 0x8a, 0xf2, 0x0e, 0x0f, 0x2f, 0xc0, 0xb2, 0x31, 0xba, 0x0e, - 0xfd, 0x9e, 0x6b, 0xa7, 0x32, 0x09, 0x62, 0xd7, 0x26, 0x98, 0x41, 0xa8, 0x60, 0x4e, 0xff, 0xca, - 0xfb, 0x21, 0x26, 0x98, 0x53, 0xb0, 0x8f, 0x79, 0xb9, 0xfe, 0x93, 0xfd, 0xe1, 0x64, 0x33, 0x5d, - 0xe6, 0x36, 0x8c, 0x98, 0x1e, 0x31, 0x02, 0xd2, 0x58, 0xd8, 0x3f, 0x4e, 0xe7, 0xd8, 0x71, 0x55, - 0x91, 0x2d, 0x70, 0xd4, 0x98, 0x9e, 0x0c, 0xaa, 0x43, 0x43, 0x29, 0x3a, 0x44, 0x73, 0x9d, 0x19, - 0xbe, 0x1f, 0x06, 0xdc, 0x7b, 0x4e, 0xe8, 0x17, 0xd9, 0x95, 0x30, 0x1b, 0xca, 0x5d, 0x5a, 0x1b, - 0xf3, 0x46, 0x6a, 0x26, 0xcd, 0xfe, 0x2e, 0x99, 0x34, 0x6d, 0x18, 0x6a, 0xb1, 0xcf, 0xd0, 0xd3, - 0xb3, 0x2c, 0xb1, 0x0f, 0xaa, 0x3e, 0xdc, 0xc7, 0x30, 0x63, 0x49, 0x82, 0x9e, 0xf0, 0x8e, 0x54, - 0x64, 0xd5, 0x13, 0x3e, 0xd4, 0x6e, 0x71, 0x04, 0x47, 0xfb, 0xf1, 0x14, 0xad, 0x43, 0xc5, 0x4d, - 0x37, 0xa2, 0x7b, 0x4a, 0x56, 0x56, 0x3e, 0xf5, 0xb9, 0x69, 0x5a, 0x7f, 0xa6, 0x3f, 0x5c, 0xa4, - 0x42, 0xc5, 0xce, 0xd6, 0x6a, 0xb5, 0x22, 0x5a, 0x2d, 0xfa, 0x5e, 0x99, 0x8b, 0xbc, 0x14, 0x7b, - 0x64, 0x32, 0xcc, 0x45, 0x3e, 0x26, 0x48, 0xc7, 0xf2, 0x8f, 0x77, 0xe0, 0xa2, 0x1f, 0x18, 0x36, - 0xa9, 0x5b, 0xc2, 0x8c, 0xee, 0x07, 0x46, 0xab, 0x5d, 0x20, 0x19, 0x38, 0x8f, 0x5f, 0x4b, 0xa3, - 0xc2, 0x59, 0xf8, 0xd1, 0x4f, 0x68, 0x30, 0xc3, 0xca, 0xe7, 0x3b, 0x81, 0xcb, 0x5f, 0xad, 0x88, - 0x88, 0x9f, 0xdc, 0x6b, 0x8a, 0x29, 0x80, 0xf5, 0x1c, 0x7c, 0x38, 0x97, 0x12, 0x7a, 0x03, 0xa6, - 0xe9, 0x09, 0x3c, 0x6f, 0x06, 0xd6, 0xae, 0x15, 0xec, 0x47, 0x5d, 0x38, 0x79, 0x06, 0x70, 0xa6, - 0x6c, 0x2c, 0x67, 0x21, 0xc3, 0xd9, 0x34, 0xf4, 0xbf, 0xd0, 0x00, 0xa5, 0x97, 0x10, 0xb2, 0x61, - 0xb8, 0x21, 0x03, 0xca, 0xb4, 0x53, 0xc9, 0x1f, 0x1c, 0x72, 0xe6, 0x30, 0x0e, 0x2d, 0xa4, 0x80, - 0x5c, 0x18, 0xb9, 0xb7, 0x6d, 0x05, 0xc4, 0xb6, 0xfc, 0xe0, 0x94, 0xd2, 0x15, 0x87, 0xb9, 0x3b, - 0x5f, 0x94, 0x88, 0x71, 0x44, 0x43, 0xff, 0xd9, 0x7e, 0x18, 0x0e, 0x9f, 0x5f, 0x38, 0xda, 0x81, - 0xa8, 0x03, 0xc8, 0x54, 0x9e, 0xb0, 0xec, 0xc5, 0x02, 0xc3, 0x84, 0xb0, 0x4a, 0x0a, 0x19, 0xce, - 0x20, 0x80, 0xde, 0x80, 0x4b, 0x96, 0xb3, 0xe5, 0x19, 0x7e, 0xe0, 0x75, 0xd8, 0x45, 0x6c, 0x2f, - 0x2f, 0x41, 0x32, 0x1d, 0xaa, 0x96, 0x81, 0x0e, 0x67, 0x12, 0x41, 0x04, 0x86, 0xf8, 0x2b, 0x33, - 0xd2, 0xbe, 0x5a, 0xc8, 0xd2, 0xc9, 0x5f, 0xaf, 0x89, 0xb8, 0x26, 0xff, 0xed, 0x63, 0x89, 0x9b, - 0x67, 0x79, 0xe2, 0xff, 0x4b, 0xd3, 0xb3, 0x58, 0xf7, 0x95, 0xe2, 0xf4, 0x22, 0x2b, 0x36, 0xcf, - 0xf2, 0x14, 0x2f, 0xc4, 0x49, 0x82, 0xfa, 0x1f, 0x68, 0x30, 0xc0, 0x53, 0x23, 0x9c, 0xbd, 0x04, - 0xf7, 0x23, 0x31, 0x09, 0xae, 0xd0, 0x63, 0x76, 0xac, 0xab, 0xb9, 0xcf, 0xac, 0x7d, 0x51, 0x83, - 0x11, 0x56, 0xe3, 0x1c, 0x44, 0xaa, 0x57, 0xe2, 0x22, 0xd5, 0x33, 0x85, 0x47, 0x93, 0x23, 0x50, - 0xfd, 0x41, 0x9f, 0x18, 0x0b, 0x93, 0x58, 0x6a, 0x70, 0x51, 0x84, 0x5a, 0x2c, 0x5b, 0x5b, 0x84, - 0x2e, 0xf1, 0xaa, 0xb1, 0xcf, 0xbd, 0x0f, 0x06, 0x44, 0x2c, 0x6e, 0x1a, 0x8c, 0xb3, 0xda, 0xa0, - 0xdf, 0xd1, 0xa8, 0x6c, 0x10, 0x78, 0x96, 0xd9, 0xd3, 0xb5, 0x4f, 0xd8, 0xb7, 0xb9, 0x15, 0x8e, - 0x8c, 0x6b, 0x26, 0x1b, 0x91, 0x90, 0xc0, 0x4a, 0xef, 0x1f, 0x94, 0xcb, 0x19, 0x26, 0xb3, 0xe8, - 0x1d, 0x23, 0x3f, 0xf8, 0xf8, 0x9f, 0x74, 0xad, 0xc2, 0xee, 0x40, 0x65, 0x8f, 0xd1, 0x6d, 0x18, - 0xf0, 0x4d, 0xb7, 0x4d, 0x4e, 0xf2, 0x1a, 0x63, 0x38, 0xc1, 0x75, 0xda, 0x12, 0x73, 0x04, 0xb3, - 0xaf, 0xc2, 0x98, 0xda, 0xf3, 0x0c, 0xcd, 0xa7, 0xaa, 0x6a, 0x3e, 0x27, 0x76, 0xa3, 0x50, 0x35, - 0xa5, 0xdf, 0x2d, 0xc1, 0x20, 0xbf, 0xe9, 0x38, 0xc6, 0x4d, 0xaf, 0x25, 0x1f, 0x8c, 0x29, 0x15, - 0x77, 0xe7, 0x56, 0x93, 0x23, 0xbf, 0xec, 0x3a, 0xca, 0x1c, 0xa8, 0x6f, 0xc6, 0x20, 0x27, 0x4c, - 0x99, 0xdd, 0x57, 0xfc, 0xc5, 0x38, 0x3e, 0xb0, 0xb3, 0x4e, 0x92, 0xfd, 0x47, 0x1a, 0x8c, 0xc5, - 0x72, 0x90, 0xb7, 0xa0, 0xcf, 0x0b, 0xdf, 0x12, 0x2d, 0x7a, 0x11, 0x2e, 0x1d, 0x76, 0xaf, 0x74, - 0xa9, 0x84, 0x29, 0x9d, 0x30, 0x5d, 0x79, 0xe9, 0x94, 0xd2, 0x95, 0xeb, 0x9f, 0xd2, 0xe0, 0xb2, - 0x1c, 0x50, 0x3c, 0x19, 0x1f, 0x7a, 0x14, 0x86, 0x8d, 0xb6, 0xc5, 0x4c, 0x6a, 0xaa, 0x51, 0x72, - 0x7e, 0xad, 0xc6, 0xca, 0x70, 0x08, 0x45, 0xef, 0x83, 0x61, 0xb9, 0xf0, 0x84, 0xd8, 0x19, 0xf2, - 0xac, 0xf0, 0x6a, 0x3f, 0xac, 0x81, 0xde, 0xa3, 0xbc, 0xe9, 0x33, 0x10, 0xc9, 0x09, 0x21, 0x61, - 0xee, 0x62, 0xa4, 0x7f, 0x1f, 0x8c, 0xd4, 0xeb, 0xb7, 0xe7, 0x4d, 0x93, 0xf8, 0xfe, 0x09, 0x8c, - 0xcb, 0xfa, 0x9b, 0x7d, 0x30, 0x2e, 0xb2, 0x8a, 0x5a, 0x4e, 0xc3, 0x72, 0x9a, 0xe7, 0x70, 0xa6, - 0xac, 0xc3, 0x08, 0xb7, 0x66, 0x1c, 0xf1, 0xee, 0x6b, 0x5d, 0x56, 0x4a, 0xe6, 0xee, 0x0f, 0x01, - 0x38, 0x42, 0x84, 0xee, 0xc0, 0xe0, 0x6b, 0x94, 0xbf, 0xc9, 0x7d, 0x71, 0x2c, 0x36, 0x13, 0x2e, - 0x7a, 0xc6, 0x1a, 0x7d, 0x2c, 0x50, 0x20, 0x9f, 0x79, 0x94, 0x33, 0x81, 0xab, 0x97, 0x6c, 0x41, - 0xb1, 0x99, 0x0d, 0x5f, 0xf4, 0x1a, 0x13, 0x8e, 0xe9, 0xec, 0x17, 0x0e, 0x09, 0xb1, 0x87, 0x47, - 0x62, 0x2d, 0xde, 0x21, 0x0f, 0x8f, 0xc4, 0xfa, 0x9c, 0x73, 0x34, 0x3e, 0x03, 0xd3, 0x99, 0x93, - 0x71, 0xb4, 0x38, 0xab, 0xff, 0x7a, 0x09, 0xfa, 0xeb, 0x84, 0x34, 0xce, 0x61, 0x65, 0xbe, 0x12, - 0x93, 0x76, 0xbe, 0xbf, 0xf0, 0xd3, 0x27, 0x79, 0xc6, 0xaa, 0xad, 0x84, 0xb1, 0xea, 0x43, 0x85, - 0x29, 0x74, 0xb7, 0x54, 0xfd, 0x52, 0x09, 0x80, 0x56, 0x5b, 0x30, 0xcc, 0x1d, 0xce, 0x71, 0xc2, - 0xd5, 0xac, 0xc5, 0x39, 0x4e, 0x7a, 0x19, 0x9e, 0xe7, 0xe5, 0xad, 0x0e, 0x83, 0xdc, 0x87, 0x40, - 0xdc, 0x7b, 0x30, 0x8b, 0x27, 0x3f, 0x9b, 0xb0, 0x80, 0xc4, 0xb9, 0x45, 0xff, 0x29, 0x71, 0x0b, - 0x7d, 0x0f, 0xd8, 0xeb, 0xd1, 0xd5, 0xd5, 0x3a, 0x6a, 0x29, 0xb3, 0x53, 0x2a, 0x2e, 0xcb, 0x0b, - 0x74, 0x47, 0xee, 0xf2, 0x37, 0x35, 0xb8, 0x90, 0xa8, 0x7b, 0x0c, 0x9d, 0xee, 0x4c, 0x78, 0xa6, - 0xfe, 0xfb, 0x1a, 0x0c, 0xd3, 0xbe, 0x9c, 0x03, 0xa3, 0xf9, 0xff, 0xe3, 0x8c, 0xe6, 0x03, 0x45, - 0xa7, 0x38, 0x87, 0xbf, 0xfc, 0x59, 0x09, 0xd8, 0x1b, 0x43, 0xc2, 0x45, 0x41, 0xb9, 0xf9, 0xd7, - 0x72, 0x6e, 0xfe, 0xaf, 0x0b, 0xc7, 0x81, 0x84, 0x8d, 0x52, 0x71, 0x1e, 0x78, 0x9f, 0xe2, 0x1b, - 0xd0, 0x17, 0xdf, 0x36, 0x19, 0xfe, 0x01, 0xaf, 0xc3, 0xb8, 0xbf, 0xed, 0xba, 0x41, 0x98, 0xd9, - 0xa6, 0xbf, 0xb8, 0x3d, 0x9a, 0x85, 0xef, 0xc8, 0xa1, 0xf0, 0x0b, 0xa8, 0xba, 0x8a, 0x1b, 0xc7, - 0x49, 0xa1, 0x39, 0x80, 0x4d, 0xdb, 0x35, 0x77, 0x2a, 0xb5, 0x2a, 0x96, 0xe1, 0x1a, 0xcc, 0x23, - 0x6a, 0x21, 0x2c, 0xc5, 0x4a, 0x8d, 0x9e, 0x7c, 0x19, 0xbe, 0xa9, 0xf1, 0x99, 0x3e, 0xc1, 0xe2, - 0x3d, 0x47, 0x8e, 0xf2, 0xde, 0x04, 0x47, 0x09, 0x39, 0x64, 0x82, 0xab, 0x94, 0xa5, 0xc0, 0xde, - 0x1f, 0xd9, 0x9f, 0x63, 0x4f, 0x33, 0xfe, 0x96, 0x18, 0x66, 0xf8, 0x4c, 0x55, 0x1b, 0xc6, 0x6d, - 0xf5, 0xb9, 0x6d, 0xb1, 0x47, 0x0a, 0xbd, 0xd4, 0x1d, 0x3a, 0x8e, 0xc5, 0x8a, 0x71, 0x9c, 0x00, - 0x7a, 0x1a, 0xc6, 0xe5, 0xe8, 0xb8, 0x63, 0x55, 0x29, 0x8a, 0xa5, 0x58, 0x53, 0x01, 0x38, 0x5e, - 0x4f, 0x7f, 0xbb, 0x04, 0x0f, 0xf1, 0xbe, 0x33, 0x8b, 0x41, 0x95, 0xb4, 0x89, 0xd3, 0x20, 0x8e, - 0xb9, 0xcf, 0x64, 0xd6, 0x86, 0xdb, 0x44, 0x6f, 0xc0, 0xe0, 0x3d, 0x42, 0x1a, 0xa1, 0x45, 0xfb, - 0xc5, 0xe2, 0xaf, 0x7c, 0xe5, 0x90, 0x78, 0x91, 0xa1, 0xe7, 0x1c, 0x9d, 0xff, 0x8f, 0x05, 0x49, - 0x4a, 0xbc, 0xed, 0xb9, 0x9b, 0xa1, 0x68, 0x75, 0xfa, 0xc4, 0xd7, 0x18, 0x7a, 0x4e, 0x9c, 0xff, - 0x8f, 0x05, 0x49, 0x7d, 0x0d, 0x1e, 0x3e, 0x46, 0xd3, 0x93, 0x88, 0xd0, 0x47, 0x61, 0xe4, 0xa3, - 0x3f, 0x09, 0xc6, 0xaf, 0x6b, 0xf0, 0x88, 0x82, 0x72, 0x71, 0x8f, 0x4a, 0xf5, 0x15, 0xa3, 0x6d, - 0x98, 0x54, 0x47, 0x65, 0xd9, 0x3a, 0x4e, 0xf4, 0xea, 0xd0, 0x9b, 0x1a, 0x0c, 0x71, 0x47, 0x1a, - 0xc9, 0x7e, 0x5f, 0xe9, 0x71, 0xca, 0x73, 0xbb, 0x24, 0xd3, 0xd9, 0xcb, 0xb1, 0xf1, 0xdf, 0x3e, - 0x96, 0xf4, 0xf5, 0x7f, 0x33, 0x00, 0xdf, 0x75, 0x7c, 0x44, 0xe8, 0x9b, 0x5a, 0xfa, 0x8d, 0xf4, - 0xd6, 0xd9, 0x76, 0x3e, 0xb4, 0x62, 0x08, 0xc5, 0xf8, 0xc5, 0xd4, 0x93, 0x61, 0xa7, 0x64, 0x20, - 0x51, 0x1e, 0x64, 0xff, 0xa7, 0x1a, 0x8c, 0xd1, 0x63, 0x29, 0x64, 0x2e, 0xfc, 0x33, 0xb5, 0xcf, - 0x78, 0xa4, 0xab, 0x0a, 0xc9, 0x44, 0x58, 0xbf, 0x0a, 0xc2, 0xb1, 0xbe, 0xa1, 0x8d, 0xf8, 0x6d, - 0x10, 0x57, 0xb7, 0xae, 0x65, 0x49, 0x23, 0x27, 0x79, 0x90, 0x6f, 0xd6, 0x86, 0x89, 0xf8, 0xcc, - 0x9f, 0xa5, 0x79, 0x67, 0xf6, 0x39, 0x98, 0x4a, 0x8d, 0xfe, 0x44, 0xc6, 0x8d, 0xbf, 0xdb, 0x0f, - 0x65, 0x65, 0xaa, 0x63, 0xae, 0x74, 0x52, 0x26, 0xf8, 0x8c, 0x06, 0xa3, 0x86, 0xe3, 0x08, 0x77, - 0x0c, 0xb9, 0x7e, 0x1b, 0x3d, 0x7e, 0xd5, 0x2c, 0x52, 0x73, 0xf3, 0x11, 0x99, 0x84, 0xbf, 0x81, - 0x02, 0xc1, 0x6a, 0x6f, 0xba, 0x38, 0xd5, 0x95, 0xce, 0xcd, 0xa9, 0x0e, 0xfd, 0x98, 0x3c, 0x88, - 0xf9, 0x32, 0x7a, 0xe9, 0x0c, 0xe6, 0x86, 0x9d, 0xeb, 0xd9, 0xd6, 0xb4, 0xd9, 0x0f, 0xc1, 0x64, - 0x72, 0xe6, 0x4e, 0xb4, 0x0a, 0x7e, 0xbd, 0x2f, 0xc6, 0xaa, 0x73, 0xc9, 0x1f, 0xc3, 0x86, 0xf8, - 0xd9, 0xc4, 0x62, 0xe1, 0x2c, 0xc0, 0x3a, 0xab, 0x09, 0x39, 0xdd, 0x15, 0xd3, 0x77, 0x7e, 0x6e, - 0x98, 0xbd, 0x7e, 0xb2, 0x05, 0x98, 0x56, 0xe6, 0x47, 0x79, 0x00, 0xf5, 0x31, 0x18, 0xda, 0xb5, - 0x7c, 0x4b, 0xe6, 0x51, 0x53, 0x4e, 0xe8, 0x17, 0x78, 0x31, 0x96, 0x70, 0x7d, 0x39, 0xb6, 0xf7, - 0xd7, 0xdd, 0xb6, 0x6b, 0xbb, 0xcd, 0xfd, 0xf9, 0x7b, 0x86, 0x47, 0xb0, 0xdb, 0x09, 0x04, 0xb6, - 0xe3, 0x9e, 0xf7, 0x2b, 0x70, 0x5d, 0xc1, 0x96, 0x99, 0x6d, 0xe6, 0x24, 0xe8, 0xbe, 0x34, 0x24, - 0x45, 0x57, 0x11, 0x8e, 0xff, 0x9b, 0x1a, 0x3c, 0x48, 0xf2, 0x8e, 0x02, 0x21, 0xc7, 0xbe, 0x74, - 0x56, 0x47, 0x8d, 0xc8, 0x6c, 0x9d, 0x07, 0xc6, 0xf9, 0x3d, 0x43, 0xfb, 0xb1, 0x67, 0x80, 0x4b, - 0xbd, 0xd8, 0xe1, 0x32, 0xbe, 0x77, 0xb7, 0x47, 0x80, 0xd1, 0x2f, 0x6b, 0x70, 0xc9, 0xce, 0xd8, - 0x3a, 0x42, 0x64, 0xad, 0x9f, 0xc1, 0xae, 0xe4, 0x77, 0x9e, 0x59, 0x10, 0x9c, 0xd9, 0x15, 0xf4, - 0xab, 0xb9, 0x69, 0x90, 0xf8, 0x95, 0xe4, 0x7a, 0x8f, 0x9d, 0x3c, 0xad, 0x8c, 0x48, 0x6f, 0x6b, - 0x80, 0x1a, 0x29, 0xb1, 0x58, 0x78, 0x91, 0x3c, 0x7f, 0xea, 0xc2, 0x3f, 0xbf, 0xb4, 0x4e, 0x97, - 0xe3, 0x8c, 0x4e, 0xb0, 0xef, 0x1c, 0x64, 0x6c, 0x5f, 0x91, 0xf4, 0xbb, 0xd7, 0xef, 0x9c, 0xc5, - 0x19, 0xf8, 0x77, 0xce, 0x82, 0xe0, 0xcc, 0xae, 0xe8, 0xbf, 0x37, 0xc8, 0xad, 0x34, 0xec, 0x56, - 0x71, 0x13, 0x06, 0x37, 0x99, 0x55, 0x4f, 0xec, 0xdb, 0xc2, 0x26, 0x44, 0x6e, 0x1b, 0xe4, 0x3a, - 0x12, 0xff, 0x1f, 0x0b, 0xcc, 0xe8, 0x65, 0xe8, 0x6b, 0x38, 0x32, 0x42, 0xeb, 0x83, 0x3d, 0x18, - 0xc3, 0xa2, 0x38, 0xd1, 0xea, 0x6a, 0x1d, 0x53, 0xa4, 0xc8, 0x81, 0x61, 0x47, 0x18, 0x36, 0x84, - 0xee, 0x59, 0xf8, 0x85, 0xe9, 0xd0, 0x40, 0x12, 0x9a, 0x65, 0x64, 0x09, 0x0e, 0x69, 0x50, 0x7a, - 0x09, 0x4b, 0x7e, 0x61, 0x7a, 0xa1, 0x69, 0xaf, 0x9b, 0xf5, 0x94, 0xc0, 0x60, 0x60, 0x58, 0x4e, - 0x20, 0xc3, 0xa0, 0x9e, 0x2d, 0x4a, 0x6d, 0x9d, 0x62, 0x89, 0xec, 0x17, 0xec, 0xa7, 0x8f, 0x05, - 0x72, 0xba, 0x0c, 0x78, 0x28, 0x94, 0xd8, 0x46, 0x85, 0x97, 0x01, 0x8f, 0xae, 0xe2, 0xcb, 0x80, - 0xff, 0x8f, 0x05, 0x66, 0xf4, 0x2a, 0x0c, 0xfb, 0xd2, 0xc9, 0x61, 0xb8, 0xd7, 0xc7, 0xc0, 0x85, - 0x87, 0x83, 0x88, 0xae, 0x11, 0xae, 0x0d, 0x21, 0x7e, 0xb4, 0x09, 0x43, 0x16, 0x8f, 0x07, 0x11, - 0x39, 0xdc, 0x3e, 0xd8, 0xc3, 0x5b, 0x98, 0x5c, 0x0d, 0x16, 0x3f, 0xb0, 0x44, 0xac, 0x7f, 0x09, - 0xb8, 0x55, 0x5c, 0xf8, 0x91, 0x6d, 0xc1, 0xb0, 0x44, 0xd7, 0x4b, 0x08, 0xb1, 0x7c, 0x7d, 0x98, - 0x0f, 0x2d, 0x7c, 0x8b, 0x38, 0xc4, 0x8d, 0x2a, 0x59, 0xa1, 0xe0, 0xd1, 0x53, 0x28, 0xc7, 0x0b, - 0x03, 0x7f, 0x8d, 0x3d, 0x17, 0x2a, 0x13, 0xb2, 0xf4, 0x15, 0x5f, 0x5a, 0x61, 0xb2, 0x96, 0xd8, - 0x33, 0xa1, 0x32, 0x9f, 0x8b, 0x42, 0x24, 0xc7, 0xcf, 0xae, 0xbf, 0x90, 0x9f, 0xdd, 0xb3, 0x70, - 0x41, 0xf8, 0x35, 0xd4, 0x1a, 0x84, 0xe9, 0x62, 0x22, 0x10, 0x81, 0x79, 0xbc, 0x54, 0xe2, 0x20, - 0x9c, 0xac, 0x8b, 0x7e, 0x57, 0x83, 0x61, 0x53, 0x08, 0x08, 0x62, 0x5f, 0x2d, 0xf7, 0x76, 0x75, - 0x32, 0x27, 0xe5, 0x0d, 0x2e, 0xfa, 0xbe, 0x20, 0x77, 0xb4, 0x2c, 0x3e, 0x25, 0x15, 0x3f, 0xec, - 0x35, 0xfa, 0x43, 0x2a, 0xdd, 0xdb, 0xec, 0x45, 0x64, 0x96, 0xf4, 0x82, 0x47, 0x48, 0xdc, 0xed, - 0x71, 0x14, 0xf3, 0x11, 0x46, 0x3e, 0x90, 0x1f, 0x0c, 0x65, 0xf8, 0x08, 0x72, 0x4a, 0x63, 0x51, - 0xbb, 0x8f, 0xfe, 0xb1, 0x06, 0x8f, 0xf0, 0xb0, 0x94, 0x0a, 0x3d, 0xf3, 0xb7, 0x2c, 0xd3, 0x08, - 0x08, 0xcf, 0x3b, 0x23, 0xbd, 0xf2, 0xb9, 0x57, 0xe0, 0xf0, 0x89, 0xbd, 0x02, 0x1f, 0x3d, 0x3c, - 0x28, 0x3f, 0x52, 0x39, 0x06, 0x6e, 0x7c, 0xac, 0x1e, 0xa0, 0xd7, 0x61, 0xdc, 0x56, 0x13, 0x73, - 0x09, 0x06, 0x53, 0xc8, 0x30, 0x1f, 0xcb, 0xf0, 0xc5, 0x2d, 0xb1, 0xb1, 0x22, 0x1c, 0x27, 0x35, - 0xbb, 0x03, 0xe3, 0xb1, 0x85, 0x76, 0xa6, 0x26, 0x0d, 0x07, 0x26, 0x93, 0xeb, 0xe1, 0x4c, 0x3d, - 0x64, 0xee, 0xc0, 0x48, 0x78, 0x50, 0xa1, 0x87, 0x14, 0x42, 0xd1, 0xb1, 0x7f, 0x87, 0xec, 0x73, - 0xaa, 0xe5, 0x98, 0x3a, 0xc6, 0xed, 0xed, 0x2f, 0xd0, 0x02, 0x81, 0x50, 0xff, 0xb2, 0xb0, 0xb7, - 0xaf, 0x93, 0x56, 0xdb, 0x36, 0x02, 0xf2, 0xce, 0xbf, 0xed, 0xd5, 0xff, 0x9b, 0xc6, 0xcf, 0x1b, - 0x7e, 0xac, 0x22, 0x03, 0x46, 0x5b, 0x3c, 0x41, 0x3c, 0xcb, 0xf3, 0xa2, 0x15, 0xcf, 0x30, 0xb3, - 0x12, 0xa1, 0xc1, 0x2a, 0x4e, 0x74, 0x0f, 0x46, 0xa4, 0x20, 0x22, 0xed, 0x07, 0x4b, 0xbd, 0x09, - 0x06, 0xa1, 0xcc, 0x13, 0x5e, 0x24, 0xca, 0x12, 0x1f, 0x47, 0xb4, 0x74, 0x03, 0x50, 0xba, 0x0d, - 0xd5, 0x59, 0xa5, 0xe3, 0xbb, 0x16, 0x4f, 0xe9, 0x9a, 0x72, 0x7e, 0x97, 0xe6, 0x91, 0x52, 0x9e, - 0x79, 0x44, 0xff, 0x7c, 0x09, 0x32, 0xdf, 0xe3, 0x44, 0x3a, 0x0c, 0xf2, 0x58, 0x34, 0x41, 0x84, - 0x89, 0x32, 0x3c, 0x50, 0x0d, 0x0b, 0x08, 0xba, 0xcb, 0xed, 0x16, 0x4e, 0x83, 0xa5, 0x52, 0x8d, - 0xb8, 0x84, 0x1a, 0xf5, 0xb8, 0x98, 0x55, 0x01, 0x67, 0xb7, 0x43, 0xbb, 0x80, 0x5a, 0xc6, 0x5e, - 0x12, 0x5b, 0x0f, 0x0f, 0xce, 0xad, 0xa4, 0xb0, 0xe1, 0x0c, 0x0a, 0xf4, 0x20, 0x35, 0x4c, 0x93, - 0xb4, 0x03, 0xd2, 0xe0, 0x43, 0x94, 0xd7, 0x7d, 0xec, 0x20, 0x9d, 0x8f, 0x83, 0x70, 0xb2, 0xae, - 0xfe, 0x8d, 0x7e, 0x78, 0x30, 0x3e, 0x89, 0x74, 0x87, 0xca, 0x70, 0xb1, 0xe7, 0xa4, 0x37, 0x3c, - 0x9f, 0xc8, 0xc7, 0x92, 0xde, 0xf0, 0x33, 0x15, 0x8f, 0xb0, 0x23, 0xd9, 0xb0, 0x7d, 0xd9, 0x28, - 0xe6, 0x19, 0xff, 0x2d, 0x88, 0xfd, 0xca, 0x89, 0x71, 0xeb, 0x3b, 0xd3, 0x18, 0xb7, 0xb7, 0x34, - 0x98, 0x8d, 0x17, 0x2f, 0x59, 0x8e, 0xe5, 0x6f, 0x8b, 0x84, 0xa0, 0x27, 0x77, 0xc6, 0x67, 0x4f, - 0xe4, 0x2c, 0xe7, 0x62, 0xc4, 0x5d, 0xa8, 0xa1, 0x4f, 0x68, 0x70, 0x25, 0x31, 0x2f, 0xb1, 0xf4, - 0xa4, 0x27, 0xf7, 0xcb, 0x67, 0xd1, 0xba, 0xcb, 0xf9, 0x28, 0x71, 0x37, 0x7a, 0xfa, 0xbf, 0x2c, - 0xc1, 0x00, 0xbb, 0xad, 0x7e, 0x67, 0xb8, 0x27, 0xb3, 0xae, 0xe6, 0x7a, 0xec, 0x34, 0x13, 0x1e, - 0x3b, 0xcf, 0x15, 0x27, 0xd1, 0xdd, 0x65, 0xe7, 0x07, 0xe1, 0x32, 0xab, 0x36, 0xdf, 0x60, 0x46, - 0x14, 0x9f, 0x34, 0xe6, 0x1b, 0x0d, 0x96, 0x2b, 0xe0, 0x68, 0xcb, 0xf1, 0x43, 0xd0, 0xd7, 0xf1, - 0xec, 0x64, 0x6a, 0xa6, 0x0d, 0xbc, 0x8c, 0x69, 0xb9, 0xfe, 0x96, 0x06, 0x93, 0x0c, 0xb7, 0xb2, - 0x7d, 0xd1, 0x2e, 0x0c, 0x7b, 0x62, 0x0b, 0x8b, 0x6f, 0xb3, 0x5c, 0x78, 0x68, 0x19, 0x6c, 0x41, - 0xbc, 0x18, 0x2c, 0x7e, 0xe1, 0x90, 0x96, 0xfe, 0xb5, 0x41, 0x98, 0xc9, 0x6b, 0x84, 0x3e, 0xa9, - 0xc1, 0x65, 0x33, 0x92, 0xe6, 0xe6, 0x3b, 0xc1, 0xb6, 0xeb, 0x59, 0x81, 0x25, 0xdc, 0x38, 0x0a, - 0xaa, 0xb9, 0x95, 0xf9, 0xb0, 0x57, 0x2c, 0x9d, 0x66, 0x25, 0x93, 0x02, 0xce, 0xa1, 0x8c, 0xde, - 0xe0, 0x69, 0x6b, 0x4c, 0xd5, 0x73, 0xe1, 0x4e, 0xe1, 0xb9, 0x52, 0x72, 0x7c, 0xcb, 0x4e, 0x85, - 0xb9, 0x6b, 0x44, 0xb9, 0x42, 0x8e, 0x12, 0xf7, 0xfd, 0xed, 0x3b, 0x64, 0xbf, 0x6d, 0x58, 0xf2, - 0xb2, 0xbe, 0x38, 0xf1, 0x7a, 0xfd, 0xb6, 0x40, 0x15, 0x27, 0xae, 0x94, 0x2b, 0xe4, 0xd0, 0xc7, - 0x35, 0x18, 0x77, 0xd5, 0xc0, 0xe2, 0x5e, 0x7c, 0x21, 0x33, 0x23, 0x94, 0xb9, 0x08, 0x1d, 0x07, - 0xc5, 0x49, 0xd2, 0x35, 0x31, 0xe5, 0x27, 0x8f, 0x2c, 0xc1, 0xd4, 0x56, 0x7a, 0x7f, 0xee, 0x5b, - 0x39, 0xff, 0xb8, 0x3a, 0x9e, 0x06, 0xa7, 0xc9, 0xb3, 0x4e, 0x91, 0xc0, 0x6c, 0x44, 0x8f, 0x0f, - 0xd3, 0x4e, 0x0d, 0x16, 0xef, 0xd4, 0xe2, 0x7a, 0xa5, 0x1a, 0x43, 0x16, 0xef, 0x54, 0x1a, 0x9c, - 0x26, 0xaf, 0x7f, 0xac, 0x04, 0x0f, 0xe4, 0xac, 0xb1, 0xbf, 0x35, 0x91, 0xe0, 0x5f, 0xd4, 0x60, - 0x84, 0xcd, 0xc1, 0x3b, 0x24, 0x9c, 0x84, 0xf5, 0x35, 0xc7, 0xa7, 0xed, 0xf7, 0x35, 0x98, 0x4a, - 0x25, 0x72, 0x3e, 0x56, 0x30, 0xc2, 0xb9, 0xb9, 0x5b, 0xbd, 0x27, 0x7a, 0xb4, 0xa1, 0x2f, 0x0a, - 0x6d, 0x4d, 0x3e, 0xd8, 0xa0, 0xbf, 0x08, 0xe3, 0x31, 0x97, 0xb6, 0x30, 0x6b, 0x8f, 0x96, 0x99, - 0xb5, 0x47, 0x4d, 0xca, 0x53, 0xea, 0x96, 0x94, 0x27, 0x5a, 0xf2, 0x69, 0xce, 0xf6, 0xb7, 0x66, - 0xc9, 0xff, 0x87, 0x49, 0xb1, 0xe4, 0xd9, 0xfd, 0xc0, 0x2b, 0x30, 0xc8, 0x52, 0x00, 0xc9, 0x13, - 0xf3, 0x66, 0xe1, 0xd4, 0x42, 0x3e, 0xd7, 0xa4, 0xf8, 0xff, 0x58, 0x60, 0x45, 0xd5, 0x78, 0x7e, - 0xab, 0xd5, 0x48, 0x69, 0xcb, 0xcc, 0x4c, 0xc5, 0x96, 0x65, 0xaa, 0x05, 0xc2, 0xfc, 0x86, 0x81, - 0x9f, 0x67, 0x85, 0xd2, 0x0f, 0x57, 0x57, 0xeb, 0xfc, 0x85, 0x9d, 0xf0, 0x66, 0xe1, 0x35, 0x00, - 0x22, 0x17, 0xaf, 0x8c, 0x02, 0x7c, 0xb6, 0x58, 0x62, 0xe5, 0x70, 0x0b, 0x48, 0xe1, 0x33, 0x2c, - 0xf2, 0xb1, 0x42, 0x04, 0x79, 0x30, 0xba, 0x6d, 0x6d, 0x12, 0xcf, 0xe1, 0x72, 0xd4, 0x40, 0x71, - 0x11, 0xf1, 0x76, 0x84, 0x86, 0xeb, 0xf8, 0x4a, 0x01, 0x56, 0x89, 0x20, 0x2f, 0x96, 0x45, 0x6f, - 0xb0, 0xb8, 0x58, 0x14, 0xd9, 0x9d, 0xa3, 0x71, 0xe6, 0x64, 0xd0, 0x73, 0x00, 0x9c, 0x30, 0xf7, - 0x57, 0x2f, 0x37, 0x0e, 0x51, 0x06, 0x31, 0x2e, 0x78, 0x44, 0xbf, 0xb1, 0x42, 0x81, 0xce, 0x6b, - 0x2b, 0xca, 0x54, 0x2a, 0x6c, 0x88, 0xcf, 0xf5, 0x98, 0x2d, 0x56, 0xd8, 0x4e, 0xa2, 0x02, 0xac, - 0x12, 0xa1, 0x63, 0x6c, 0x85, 0xf9, 0x45, 0x85, 0x8d, 0xb0, 0xd0, 0x18, 0xa3, 0x2c, 0xa5, 0xe2, - 0x99, 0xc6, 0xf0, 0x37, 0x56, 0x28, 0xa0, 0x57, 0x95, 0x8b, 0x29, 0x28, 0x6e, 0x81, 0x3a, 0xd6, - 0xa5, 0xd4, 0xfb, 0x23, 0x43, 0xcc, 0x28, 0xdb, 0xab, 0x57, 0x14, 0x23, 0x0c, 0xcb, 0xbb, 0x4a, - 0xf9, 0x47, 0xca, 0x28, 0x13, 0x39, 0xd3, 0x8e, 0x75, 0x75, 0xa6, 0xad, 0x50, 0x09, 0x4d, 0x09, - 0xee, 0x60, 0x4c, 0x61, 0x3c, 0xba, 0xe1, 0xa8, 0x27, 0x81, 0x38, 0x5d, 0x9f, 0x33, 0x7d, 0xd2, - 0x60, 0x6d, 0x27, 0x54, 0xa6, 0xcf, 0xcb, 0x70, 0x08, 0x45, 0xbb, 0x30, 0xe6, 0x2b, 0x9e, 0xb9, - 0xe2, 0x6d, 0xdd, 0x1e, 0xee, 0xa6, 0x84, 0x57, 0x2e, 0x4b, 0x8a, 0xa4, 0x96, 0xe0, 0x18, 0x1d, - 0xf4, 0x86, 0xea, 0x8a, 0x38, 0xd9, 0x5b, 0xf6, 0xcd, 0x74, 0x3e, 0xd9, 0xc8, 0xc2, 0x16, 0x7a, - 0xc1, 0xa9, 0x1e, 0x82, 0x9d, 0xb8, 0xd3, 0xdd, 0xd4, 0xa9, 0x84, 0x9d, 0x1f, 0xe9, 0x94, 0x47, - 0x3f, 0x2d, 0xd9, 0x6b, 0xbb, 0x7e, 0xc7, 0x23, 0x2c, 0x4f, 0x36, 0xfb, 0x3c, 0x28, 0xfa, 0xb4, - 0x8b, 0x49, 0x20, 0x4e, 0xd7, 0x47, 0x3f, 0xa5, 0xc1, 0x24, 0x7f, 0x9a, 0x98, 0x1e, 0x5d, 0xae, - 0x43, 0x9c, 0xc0, 0x67, 0x6f, 0xef, 0x16, 0x8c, 0x94, 0xac, 0x27, 0x70, 0xf1, 0xf7, 0xdc, 0x92, - 0xa5, 0x38, 0x45, 0x93, 0xae, 0x1c, 0x35, 0x70, 0x9d, 0x3d, 0xe1, 0x5b, 0x70, 0xe5, 0xa8, 0x41, - 0xf1, 0x7c, 0xe5, 0xa8, 0x25, 0x38, 0x46, 0x07, 0x3d, 0x0d, 0xe3, 0xbe, 0x7c, 0xc4, 0x8b, 0xcd, - 0xe0, 0x74, 0x94, 0x59, 0xaa, 0xae, 0x02, 0x70, 0xbc, 0x1e, 0xfa, 0x28, 0x8c, 0xa9, 0x67, 0xa7, - 0x78, 0xf8, 0xf7, 0x14, 0x13, 0x5d, 0xf2, 0x9e, 0xab, 0xa0, 0x18, 0x41, 0xfd, 0xdf, 0x6a, 0x00, - 0xa1, 0xf9, 0xe2, 0x3c, 0x8c, 0xf2, 0x8d, 0x98, 0x45, 0x67, 0xa1, 0x27, 0x73, 0x4b, 0x6e, 0xee, - 0x60, 0xfd, 0xab, 0x1a, 0x4c, 0x44, 0xd5, 0xce, 0x41, 0x57, 0x30, 0xe3, 0xba, 0xc2, 0x87, 0x7a, - 0x1b, 0x57, 0x8e, 0xc2, 0xf0, 0x7f, 0x4b, 0xea, 0xa8, 0x98, 0x38, 0xb8, 0x1b, 0xbb, 0xe4, 0xa6, - 0xa4, 0x6f, 0xf7, 0x72, 0xc9, 0xad, 0x46, 0xf3, 0x46, 0xe3, 0xcd, 0xb8, 0xf4, 0xfe, 0x3b, 0x31, - 0x61, 0xac, 0x87, 0x98, 0xf5, 0x50, 0xf2, 0x92, 0xa4, 0xf9, 0x04, 0x1c, 0x25, 0x99, 0xbd, 0xa6, - 0xf2, 0xea, 0x1e, 0xf2, 0xfd, 0xc6, 0x06, 0xdc, 0x95, 0x43, 0xeb, 0x3f, 0x3f, 0x01, 0xa3, 0x8a, - 0xa5, 0x2f, 0x71, 0x65, 0xaf, 0x9d, 0xc7, 0x95, 0x7d, 0x00, 0xa3, 0x66, 0xf8, 0xf0, 0x85, 0x9c, - 0xf6, 0x1e, 0x69, 0x86, 0x67, 0x44, 0xf4, 0xa4, 0x86, 0x8f, 0x55, 0x32, 0x54, 0x92, 0x09, 0xd7, - 0x58, 0xdf, 0x29, 0x38, 0x52, 0x74, 0x5b, 0x57, 0x4f, 0x01, 0x48, 0x61, 0x98, 0x34, 0x44, 0x72, - 0xc9, 0xd0, 0x67, 0xbd, 0xe6, 0xdf, 0x0e, 0x61, 0x58, 0xa9, 0x97, 0xbe, 0x02, 0x1e, 0x38, 0xb7, - 0x2b, 0x60, 0xba, 0x0c, 0x6c, 0xf9, 0xee, 0x5a, 0x4f, 0x4e, 0x41, 0xe1, 0xeb, 0x6d, 0xd1, 0x32, - 0x08, 0x8b, 0x7c, 0xac, 0x10, 0xc9, 0xf1, 0xdc, 0x18, 0x2a, 0xe4, 0xb9, 0xd1, 0x81, 0x8b, 0x1e, - 0x09, 0xbc, 0xfd, 0xca, 0xbe, 0xc9, 0x92, 0x1c, 0x7b, 0x01, 0x53, 0x69, 0x87, 0x8b, 0x25, 0x3b, - 0xc2, 0x69, 0x54, 0x38, 0x0b, 0x7f, 0x4c, 0x1a, 0x1c, 0xe9, 0x2a, 0x0d, 0xbe, 0x1f, 0x46, 0x03, - 0x62, 0x6e, 0x3b, 0x96, 0x69, 0xd8, 0xb5, 0xaa, 0xc8, 0xbc, 0x18, 0x09, 0x36, 0x11, 0x08, 0xab, - 0xf5, 0xd0, 0x02, 0xf4, 0x75, 0xac, 0x86, 0x10, 0x87, 0xbf, 0x27, 0xb4, 0x99, 0xd7, 0xaa, 0xf7, - 0x0f, 0xca, 0xef, 0x8e, 0x5c, 0x21, 0xc2, 0x51, 0xdd, 0x68, 0xef, 0x34, 0x6f, 0x04, 0xfb, 0x6d, - 0xe2, 0xcf, 0x6d, 0xd4, 0xaa, 0x98, 0x36, 0xce, 0xf2, 0x6a, 0x19, 0x3b, 0x81, 0x57, 0xcb, 0xdb, - 0x1a, 0x5c, 0x34, 0x92, 0xe6, 0x7e, 0xe2, 0xcf, 0x8c, 0x17, 0xe7, 0x96, 0xd9, 0x57, 0x08, 0x0b, - 0x57, 0xc4, 0xf8, 0x2e, 0xce, 0xa7, 0xc9, 0xe1, 0xac, 0x3e, 0x20, 0x0f, 0x50, 0xcb, 0x6a, 0x86, - 0x4f, 0xa0, 0x89, 0xaf, 0x3e, 0x51, 0xcc, 0x90, 0xb1, 0x92, 0xc2, 0x84, 0x33, 0xb0, 0xa3, 0x7b, - 0x30, 0x6a, 0x46, 0x97, 0x02, 0x42, 0xac, 0xaf, 0x9e, 0xc6, 0xad, 0x04, 0x57, 0xfd, 0xd4, 0x1b, - 0x07, 0x95, 0x52, 0x78, 0x9d, 0xa7, 0xe8, 0xdc, 0xe2, 0x4a, 0x8b, 0x8d, 0x7a, 0xb2, 0xf8, 0x75, - 0x5e, 0x36, 0x46, 0xdc, 0x85, 0x1a, 0x4b, 0x31, 0x64, 0xc7, 0x5f, 0x2a, 0x9c, 0x99, 0x2a, 0x1e, - 0x96, 0x9c, 0x78, 0xf4, 0x90, 0x2f, 0xcd, 0x44, 0x21, 0x4e, 0x12, 0x44, 0x4b, 0x80, 0x08, 0xb7, - 0x2d, 0x47, 0x9a, 0x8a, 0x3f, 0x83, 0xc2, 0x17, 0x1d, 0xd1, 0x62, 0x0a, 0x8a, 0x33, 0x5a, 0xe8, - 0x5f, 0xd1, 0x84, 0xe5, 0xef, 0x1c, 0xdd, 0x3a, 0xce, 0xfa, 0x4e, 0x50, 0xff, 0x73, 0x0d, 0x52, - 0xca, 0x06, 0xda, 0x84, 0x21, 0x8a, 0xa2, 0xba, 0x5a, 0x17, 0xc3, 0xfa, 0x60, 0xb1, 0x63, 0x97, - 0xa1, 0xe0, 0x66, 0x54, 0xf1, 0x03, 0x4b, 0xc4, 0x54, 0x7d, 0x71, 0x94, 0x24, 0xd2, 0x62, 0x84, - 0x85, 0xe4, 0x1a, 0x35, 0x19, 0x35, 0x57, 0x02, 0xd4, 0x12, 0x1c, 0xa3, 0xa3, 0x2f, 0x03, 0x44, - 0x0a, 0x62, 0xcf, 0x9e, 0x3e, 0xff, 0x62, 0x10, 0xa6, 0x7b, 0x8d, 0x71, 0x60, 0x0f, 0xed, 0x91, - 0x5d, 0xcb, 0x0c, 0xe6, 0xb7, 0x02, 0xe2, 0xdd, 0xbd, 0xbb, 0xb2, 0xbe, 0xed, 0x11, 0x7f, 0xdb, - 0xb5, 0x1b, 0x05, 0x5f, 0xfa, 0x63, 0x37, 0x83, 0x8b, 0x99, 0x18, 0x71, 0x0e, 0x25, 0xa6, 0x1c, - 0x8b, 0xb7, 0xf9, 0x31, 0x15, 0x4a, 0x3b, 0x9e, 0x1f, 0x88, 0x44, 0x2d, 0x5c, 0x39, 0x4e, 0x02, - 0x71, 0xba, 0x7e, 0x12, 0xc9, 0xb2, 0xd5, 0xb2, 0xf8, 0x8b, 0x67, 0x5a, 0x1a, 0x09, 0x03, 0xe2, - 0x74, 0x7d, 0x15, 0x09, 0xff, 0x52, 0x94, 0x6b, 0x0c, 0xa4, 0x91, 0x84, 0x40, 0x9c, 0xae, 0x8f, - 0x1a, 0x70, 0xd5, 0x23, 0xa6, 0xdb, 0x6a, 0x11, 0xa7, 0xc1, 0xdf, 0xb0, 0x35, 0xbc, 0xa6, 0xe5, - 0x2c, 0x79, 0x06, 0xab, 0xc8, 0x6c, 0x8d, 0x1a, 0x7b, 0xb7, 0xe7, 0x2a, 0xee, 0x52, 0x0f, 0x77, - 0xc5, 0x82, 0x5a, 0x70, 0x81, 0x3f, 0x98, 0xe7, 0xd5, 0x9c, 0x80, 0x78, 0xbb, 0x86, 0x2d, 0x0c, - 0x8a, 0x85, 0xde, 0xd7, 0xdf, 0x88, 0xa3, 0xc2, 0x49, 0xdc, 0x68, 0x9f, 0xca, 0x2f, 0xa2, 0x3b, - 0x0a, 0xc9, 0xe1, 0xe2, 0x4f, 0x51, 0xe2, 0x34, 0x3a, 0x9c, 0x45, 0x03, 0xd5, 0xe0, 0x62, 0x60, - 0x78, 0x4d, 0x12, 0x54, 0xd6, 0x36, 0xd6, 0x88, 0x67, 0xd2, 0xe3, 0xc6, 0xe6, 0xe2, 0x8c, 0xc6, - 0x51, 0xad, 0xa7, 0xc1, 0x38, 0xab, 0x8d, 0xfe, 0xb6, 0x06, 0xc2, 0x3b, 0x1b, 0x5d, 0x8d, 0xdd, - 0xff, 0x0c, 0x27, 0xee, 0x7e, 0xe4, 0xbb, 0x0c, 0xa5, 0xcc, 0x77, 0x19, 0xde, 0xab, 0x24, 0x13, - 0x1a, 0x89, 0xd8, 0x28, 0xc7, 0xac, 0x3c, 0x58, 0xf6, 0x38, 0x8c, 0x84, 0xcc, 0x5c, 0x08, 0xd9, - 0x2c, 0x39, 0x68, 0xc4, 0xf5, 0x23, 0xb8, 0xfe, 0x47, 0x1a, 0x40, 0xf4, 0x46, 0xc7, 0xf1, 0x9e, - 0x59, 0x3b, 0xd2, 0xdd, 0x4b, 0x79, 0x1e, 0xae, 0x2f, 0xf7, 0x79, 0xb8, 0x33, 0x7a, 0x35, 0xed, - 0x37, 0x35, 0xb8, 0x10, 0xcf, 0xee, 0xe4, 0xa3, 0xf7, 0xc0, 0x90, 0xc8, 0xff, 0x28, 0x12, 0xb8, - 0xb1, 0xa6, 0x22, 0x01, 0x03, 0x96, 0xb0, 0xb8, 0x89, 0xb0, 0x07, 0xad, 0x37, 0x3b, 0xc9, 0xd4, - 0x11, 0x0a, 0xe8, 0xdb, 0x53, 0x30, 0xc8, 0x93, 0x07, 0x52, 0xf6, 0x98, 0x11, 0x78, 0x7a, 0xa7, - 0x78, 0x8e, 0xc2, 0x22, 0xd1, 0x82, 0x6a, 0x9e, 0xfe, 0x52, 0xd7, 0x3c, 0xfd, 0x98, 0xbf, 0x46, - 0xd9, 0xc3, 0x75, 0x50, 0x05, 0xd7, 0xf8, 0x75, 0x50, 0xf8, 0x12, 0x65, 0x10, 0xbb, 0x27, 0xe9, - 0x2f, 0x2e, 0x4c, 0xf2, 0x09, 0x50, 0x6e, 0x4b, 0x26, 0xba, 0xde, 0x94, 0xc8, 0xec, 0x6c, 0x03, - 0xc5, 0xdd, 0x2f, 0xc5, 0x94, 0x1f, 0x23, 0x3b, 0x5b, 0xb8, 0x91, 0x06, 0x73, 0x37, 0xd2, 0x16, - 0x0c, 0x89, 0xad, 0x20, 0xf8, 0xec, 0x07, 0x7b, 0x78, 0x79, 0x48, 0x49, 0x28, 0xcc, 0x0b, 0xb0, - 0x44, 0x4e, 0x0f, 0xef, 0x96, 0xb1, 0x67, 0xb5, 0x3a, 0x2d, 0xc6, 0x5c, 0x07, 0xd4, 0xaa, 0xac, - 0x18, 0x4b, 0x38, 0xab, 0xca, 0xbd, 0x56, 0x19, 0x33, 0x54, 0xab, 0xf2, 0x62, 0x2c, 0xe1, 0xe8, - 0x65, 0x18, 0x6e, 0x19, 0x7b, 0xf5, 0x8e, 0xd7, 0x24, 0xe2, 0x96, 0x24, 0x5f, 0x5c, 0xec, 0x04, - 0x96, 0x3d, 0x67, 0x39, 0x81, 0x1f, 0x78, 0x73, 0x35, 0x27, 0xb8, 0xeb, 0xd5, 0x03, 0x2f, 0x7c, - 0xdb, 0x6d, 0x45, 0x60, 0xc1, 0x21, 0x3e, 0x64, 0xc3, 0x44, 0xcb, 0xd8, 0xdb, 0x70, 0x0c, 0x9e, - 0x78, 0xcf, 0xe6, 0x97, 0x23, 0x45, 0x28, 0xb0, 0xab, 0xf2, 0x95, 0x18, 0x2e, 0x9c, 0xc0, 0x9d, - 0x71, 0x2b, 0x3f, 0x76, 0x56, 0xb7, 0xf2, 0xf3, 0x61, 0x0c, 0x12, 0x57, 0x25, 0x1f, 0xcc, 0x8c, - 0xcd, 0xef, 0x1a, 0x5f, 0xf4, 0x4a, 0x18, 0x5f, 0x34, 0x51, 0xfc, 0x1a, 0xb9, 0x4b, 0x6c, 0x51, - 0x07, 0x46, 0xa9, 0xb0, 0xce, 0x4b, 0xa9, 0xae, 0x57, 0xd8, 0x2a, 0x5a, 0x0d, 0xd1, 0x28, 0xaf, - 0x92, 0x47, 0xa8, 0xb1, 0x4a, 0x07, 0xdd, 0x85, 0x69, 0xf1, 0x4e, 0x6c, 0x54, 0x85, 0xd9, 0x18, - 0x26, 0xd9, 0xfe, 0x61, 0x7e, 0xc0, 0x77, 0xb2, 0x2a, 0xe0, 0xec, 0x76, 0x51, 0x1e, 0x99, 0xa9, - 0xec, 0x3c, 0x32, 0xe8, 0x67, 0xb3, 0xee, 0x3e, 0x10, 0x9b, 0xd3, 0x1f, 0x28, 0xce, 0x1b, 0x0a, - 0xdf, 0x80, 0xfc, 0x2b, 0x0d, 0x66, 0x5a, 0x39, 0xcf, 0x77, 0x8b, 0x2b, 0x99, 0xf5, 0x1e, 0xf8, - 0x43, 0xee, 0x93, 0xe0, 0x0b, 0x8f, 0x1c, 0x1e, 0x94, 0x8f, 0x7c, 0x38, 0x1c, 0xe7, 0xf6, 0x0d, - 0x79, 0x30, 0xe4, 0xef, 0xfb, 0x66, 0x60, 0xfb, 0x33, 0x97, 0x8a, 0xbf, 0x12, 0x2d, 0x38, 0x6b, - 0x9d, 0x63, 0xe2, 0xac, 0x35, 0x4a, 0x63, 0xcf, 0x4b, 0xb1, 0x24, 0x84, 0x7e, 0x5e, 0x83, 0x29, - 0x61, 0xb4, 0x51, 0x82, 0x6b, 0xa7, 0x8b, 0x7b, 0x4b, 0x56, 0x92, 0xc8, 0xee, 0xb6, 0x79, 0x0e, - 0x74, 0x26, 0xa4, 0xa7, 0xa0, 0x38, 0x4d, 0xbd, 0xd7, 0xe8, 0xf7, 0x1e, 0xd2, 0x79, 0xce, 0xde, - 0x84, 0x31, 0x75, 0xe2, 0x4e, 0x14, 0x74, 0xff, 0x2b, 0x1a, 0x4c, 0x26, 0x0f, 0x52, 0xb4, 0x0d, - 0x43, 0x62, 0x57, 0x09, 0x9d, 0x79, 0xbe, 0xa8, 0x1f, 0x83, 0x4d, 0x44, 0x34, 0x00, 0x97, 0xcb, - 0x44, 0x11, 0x96, 0xe8, 0x55, 0x3f, 0xa5, 0x52, 0x17, 0x3f, 0xa5, 0x67, 0xe1, 0x72, 0xf6, 0xfe, - 0xa2, 0x52, 0xad, 0x61, 0xdb, 0xee, 0x3d, 0xa1, 0x98, 0x46, 0xaf, 0x6e, 0xd1, 0x42, 0xcc, 0x61, - 0xfa, 0x8f, 0x41, 0x32, 0x79, 0x33, 0x7a, 0x15, 0x46, 0x7c, 0x7f, 0x9b, 0xe7, 0xe5, 0x14, 0x83, - 0x2c, 0x66, 0x91, 0x90, 0xc9, 0x3d, 0xb9, 0x20, 0x1e, 0xfe, 0xc4, 0x11, 0xfa, 0x85, 0x97, 0xbe, - 0xf0, 0x8d, 0x6b, 0xef, 0xfa, 0xf2, 0x37, 0xae, 0xbd, 0xeb, 0x6b, 0xdf, 0xb8, 0xf6, 0xae, 0x1f, - 0x3f, 0xbc, 0xa6, 0x7d, 0xe1, 0xf0, 0x9a, 0xf6, 0xe5, 0xc3, 0x6b, 0xda, 0xd7, 0x0e, 0xaf, 0x69, - 0xff, 0xf9, 0xf0, 0x9a, 0xf6, 0x73, 0xff, 0xe5, 0xda, 0xbb, 0x5e, 0x7e, 0x32, 0xa2, 0x7e, 0x43, - 0x12, 0x8d, 0xfe, 0x69, 0xef, 0x34, 0x6f, 0x50, 0xea, 0x32, 0x04, 0x8c, 0x51, 0xff, 0x7f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x2b, 0x35, 0x14, 0xf0, 0xe9, 0xf4, 0x00, 0x00, + // 12390 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x6c, 0x2d, 0x49, + 0x56, 0xd8, 0xf6, 0xf5, 0xd7, 0xf5, 0xf1, 0xc7, 0xb3, 0xeb, 0x7d, 0x79, 0x3c, 0x33, 0xef, 0xbe, + 0xed, 0x99, 0xdd, 0xcc, 0x30, 0x8b, 0x1f, 0x33, 0xec, 0x32, 0x3b, 0xb3, 0xcc, 0xce, 0xda, 0xf7, + 0xda, 0xef, 0x5d, 0x9e, 0xed, 0xe7, 0xad, 0xeb, 0x37, 0x33, 0x0c, 0x64, 0xa0, 0xdd, 0x5d, 0xbe, + 0xee, 0x79, 0x7d, 0xbb, 0xef, 0x74, 0xf7, 0xf5, 0xb3, 0x67, 0x96, 0x2c, 0xbb, 0x01, 0xc2, 0x2e, + 0x6c, 0x04, 0x48, 0x64, 0x35, 0x0b, 0x11, 0x8b, 0x10, 0xf9, 0x22, 0xda, 0x10, 0x22, 0x22, 0x01, + 0x8a, 0x84, 0x90, 0x08, 0xbb, 0x08, 0x10, 0x82, 0x44, 0x59, 0x92, 0x60, 0xb2, 0x0e, 0x81, 0x48, + 0x89, 0x50, 0x14, 0x14, 0xa1, 0xbc, 0x20, 0x88, 0xea, 0xab, 0xbb, 0xfa, 0xeb, 0xda, 0xee, 0x6b, + 0x7b, 0x77, 0xc4, 0xfe, 0xb2, 0x6f, 0x9d, 0xaa, 0x73, 0xaa, 0xaa, 0xab, 0x4e, 0x9d, 0x3a, 0x75, + 0x3e, 0x60, 0xa9, 0x6d, 0x87, 0x3b, 0xbd, 0xad, 0x05, 0xd3, 0xeb, 0xdc, 0x68, 0x1b, 0xbe, 0x45, + 0x5c, 0xe2, 0xc7, 0xff, 0x74, 0xef, 0xb5, 0x6f, 0x18, 0x5d, 0x3b, 0xb8, 0x61, 0x7a, 0x3e, 0xb9, + 0xb1, 0xfb, 0xf4, 0x16, 0x09, 0x8d, 0xa7, 0x6f, 0xb4, 0x29, 0xcc, 0x08, 0x89, 0xb5, 0xd0, 0xf5, + 0xbd, 0xd0, 0x43, 0xcf, 0xc4, 0x38, 0x16, 0x64, 0xd3, 0xf8, 0x9f, 0xee, 0xbd, 0xf6, 0x02, 0xc5, + 0xb1, 0x40, 0x71, 0x2c, 0x08, 0x1c, 0xf3, 0xdf, 0xa8, 0xd2, 0xf5, 0xda, 0xde, 0x0d, 0x86, 0x6a, + 0xab, 0xb7, 0xcd, 0x7e, 0xb1, 0x1f, 0xec, 0x3f, 0x4e, 0x62, 0xfe, 0xc9, 0x7b, 0x1f, 0x0c, 0x16, + 0x6c, 0x8f, 0x76, 0xe6, 0x86, 0xd1, 0x0b, 0xbd, 0xc0, 0x34, 0x1c, 0xdb, 0x6d, 0xdf, 0xd8, 0xcd, + 0xf4, 0x66, 0x5e, 0x57, 0xaa, 0x8a, 0x6e, 0xf7, 0xad, 0xe3, 0x6f, 0x19, 0x66, 0x5e, 0x9d, 0xf7, + 0xc7, 0x75, 0x3a, 0x86, 0xb9, 0x63, 0xbb, 0xc4, 0xdf, 0x97, 0x13, 0x72, 0xc3, 0x27, 0x81, 0xd7, + 0xf3, 0x4d, 0x72, 0xa2, 0x56, 0xc1, 0x8d, 0x0e, 0x09, 0x8d, 0x3c, 0x5a, 0x37, 0x8a, 0x5a, 0xf9, + 0x3d, 0x37, 0xb4, 0x3b, 0x59, 0x32, 0xdf, 0x72, 0x54, 0x83, 0xc0, 0xdc, 0x21, 0x1d, 0x23, 0xd3, + 0xee, 0x9b, 0x8b, 0xda, 0xf5, 0x42, 0xdb, 0xb9, 0x61, 0xbb, 0x61, 0x10, 0xfa, 0xe9, 0x46, 0xfa, + 0xa7, 0x35, 0x98, 0x59, 0xdc, 0x68, 0xb6, 0x88, 0xbf, 0x4b, 0xfc, 0x55, 0xaf, 0xdd, 0xb6, 0xdd, + 0x36, 0x7a, 0x0a, 0xc6, 0x77, 0x89, 0xbf, 0xe5, 0x05, 0x76, 0xb8, 0x3f, 0xa7, 0x5d, 0xd7, 0x9e, + 0x18, 0x59, 0x9a, 0x3a, 0x3c, 0xa8, 0x8d, 0xbf, 0x24, 0x0b, 0x71, 0x0c, 0x47, 0x4d, 0xb8, 0xb8, + 0x13, 0x86, 0xdd, 0x45, 0xd3, 0x24, 0x41, 0x10, 0xd5, 0x98, 0xab, 0xb0, 0x66, 0x57, 0x0f, 0x0f, + 0x6a, 0x17, 0x6f, 0x6d, 0x6e, 0x6e, 0xa4, 0xc0, 0x38, 0xaf, 0x8d, 0xfe, 0x0b, 0x1a, 0xcc, 0x46, + 0x9d, 0xc1, 0xe4, 0x8d, 0x1e, 0x09, 0xc2, 0x00, 0x61, 0xb8, 0xd2, 0x31, 0xf6, 0xd6, 0x3d, 0x77, + 0xad, 0x17, 0x1a, 0xa1, 0xed, 0xb6, 0x9b, 0xee, 0xb6, 0x63, 0xb7, 0x77, 0x42, 0xd1, 0xb5, 0xf9, + 0xc3, 0x83, 0xda, 0x95, 0xb5, 0xdc, 0x1a, 0xb8, 0xa0, 0x25, 0xed, 0x74, 0xc7, 0xd8, 0xcb, 0x20, + 0x54, 0x3a, 0xbd, 0x96, 0x05, 0xe3, 0xbc, 0x36, 0xfa, 0x33, 0x30, 0xb2, 0x68, 0x59, 0x9e, 0x8b, + 0x9e, 0x84, 0x31, 0xe2, 0x1a, 0x5b, 0x0e, 0xb1, 0x58, 0xc7, 0xaa, 0x4b, 0x17, 0xbe, 0x78, 0x50, + 0x7b, 0xd7, 0xe1, 0x41, 0x6d, 0x6c, 0x99, 0x17, 0x63, 0x09, 0xd7, 0x7f, 0xbc, 0x02, 0xa3, 0xac, + 0x51, 0x80, 0x7e, 0x4c, 0x83, 0x8b, 0xf7, 0x7a, 0x5b, 0xc4, 0x77, 0x49, 0x48, 0x82, 0x86, 0x11, + 0xec, 0x6c, 0x79, 0x86, 0xcf, 0x51, 0x4c, 0x3c, 0x73, 0x73, 0xe1, 0xe4, 0xfb, 0x6f, 0xe1, 0x76, + 0x16, 0x1d, 0x1f, 0x53, 0x0e, 0x00, 0xe7, 0x11, 0x47, 0xbb, 0x30, 0xe9, 0xb6, 0x6d, 0x77, 0xaf, + 0xe9, 0xb6, 0x7d, 0x12, 0x04, 0x6c, 0x5e, 0x26, 0x9e, 0xf9, 0x48, 0x99, 0xce, 0xac, 0x2b, 0x78, + 0x96, 0x66, 0x0e, 0x0f, 0x6a, 0x93, 0x6a, 0x09, 0x4e, 0xd0, 0xd1, 0xff, 0x4a, 0x83, 0x0b, 0x8b, + 0x56, 0xc7, 0x0e, 0x02, 0xdb, 0x73, 0x37, 0x9c, 0x5e, 0xdb, 0x76, 0xd1, 0x75, 0x18, 0x76, 0x8d, + 0x0e, 0x61, 0x13, 0x32, 0xbe, 0x34, 0x29, 0xe6, 0x74, 0x78, 0xdd, 0xe8, 0x10, 0xcc, 0x20, 0xe8, + 0xa3, 0x30, 0x6a, 0x7a, 0xee, 0xb6, 0xdd, 0x16, 0xfd, 0xfc, 0xc6, 0x05, 0xbe, 0x13, 0x16, 0xd4, + 0x9d, 0xc0, 0xba, 0x27, 0x76, 0xd0, 0x02, 0x36, 0xee, 0x2f, 0xef, 0x85, 0xc4, 0xa5, 0x64, 0x96, + 0xe0, 0xf0, 0xa0, 0x36, 0x5a, 0x67, 0x08, 0xb0, 0x40, 0x84, 0x9e, 0x80, 0xaa, 0x65, 0x07, 0xfc, + 0x63, 0x0e, 0xb1, 0x8f, 0x39, 0x79, 0x78, 0x50, 0xab, 0x36, 0x44, 0x19, 0x8e, 0xa0, 0x68, 0x15, + 0x2e, 0xd1, 0x19, 0xe4, 0xed, 0x5a, 0xc4, 0xf4, 0x49, 0x48, 0xbb, 0x36, 0x37, 0xcc, 0xba, 0x3b, + 0x77, 0x78, 0x50, 0xbb, 0x74, 0x3b, 0x07, 0x8e, 0x73, 0x5b, 0xe9, 0x2b, 0x50, 0x5d, 0x74, 0x88, + 0x4f, 0x17, 0x18, 0x7a, 0x1e, 0xa6, 0x49, 0xc7, 0xb0, 0x1d, 0x4c, 0x4c, 0x62, 0xef, 0x12, 0x3f, + 0x98, 0xd3, 0xae, 0x0f, 0x3d, 0x31, 0xbe, 0x84, 0x0e, 0x0f, 0x6a, 0xd3, 0xcb, 0x09, 0x08, 0x4e, + 0xd5, 0xd4, 0x3f, 0xa1, 0xc1, 0xc4, 0x62, 0xcf, 0xb2, 0x43, 0x3e, 0x2e, 0xe4, 0xc3, 0x84, 0x41, + 0x7f, 0x6e, 0x78, 0x8e, 0x6d, 0xee, 0x8b, 0xc5, 0xf5, 0x62, 0x99, 0xef, 0xb9, 0x18, 0xa3, 0x59, + 0xba, 0x70, 0x78, 0x50, 0x9b, 0x50, 0x0a, 0xb0, 0x4a, 0x44, 0xdf, 0x01, 0x15, 0x86, 0xbe, 0x1d, + 0x26, 0xf9, 0x70, 0xd7, 0x8c, 0x2e, 0x26, 0xdb, 0xa2, 0x0f, 0x8f, 0x29, 0xdf, 0x4a, 0x12, 0x5a, + 0xb8, 0xb3, 0xf5, 0x3a, 0x31, 0x43, 0x4c, 0xb6, 0x89, 0x4f, 0x5c, 0x93, 0xf0, 0x65, 0x53, 0x57, + 0x1a, 0xe3, 0x04, 0x2a, 0xfd, 0x8f, 0x28, 0x13, 0xdb, 0x35, 0x6c, 0xc7, 0xd8, 0xb2, 0x1d, 0x3b, + 0xdc, 0x7f, 0xd5, 0x73, 0xc9, 0x31, 0xd6, 0xcd, 0x5d, 0xb8, 0xda, 0x73, 0x0d, 0xde, 0xce, 0x21, + 0x6b, 0x7c, 0xa5, 0x6c, 0xee, 0x77, 0x09, 0x5d, 0xf0, 0x74, 0xa6, 0x1f, 0x3e, 0x3c, 0xa8, 0x5d, + 0xbd, 0x9b, 0x5f, 0x05, 0x17, 0xb5, 0xa5, 0xfc, 0x4a, 0x01, 0xbd, 0xe4, 0x39, 0xbd, 0x8e, 0xc0, + 0x3a, 0xc4, 0xb0, 0x32, 0x7e, 0x75, 0x37, 0xb7, 0x06, 0x2e, 0x68, 0xa9, 0x7f, 0xb1, 0x02, 0x93, + 0x4b, 0x86, 0x79, 0xaf, 0xd7, 0x5d, 0xea, 0x99, 0xf7, 0x48, 0x88, 0xbe, 0x1b, 0xaa, 0xf4, 0xc0, + 0xb1, 0x8c, 0xd0, 0x10, 0x33, 0xf9, 0x4d, 0x85, 0xab, 0x9e, 0x7d, 0x44, 0x5a, 0x3b, 0x9e, 0xdb, + 0x35, 0x12, 0x1a, 0x4b, 0x48, 0xcc, 0x09, 0xc4, 0x65, 0x38, 0xc2, 0x8a, 0xb6, 0x61, 0x38, 0xe8, + 0x12, 0x53, 0xec, 0xa9, 0x46, 0x99, 0xb5, 0xa2, 0xf6, 0xb8, 0xd5, 0x25, 0x66, 0xfc, 0x15, 0xe8, + 0x2f, 0xcc, 0xf0, 0x23, 0x17, 0x46, 0x83, 0xd0, 0x08, 0x7b, 0x01, 0xdb, 0x68, 0x13, 0xcf, 0xac, + 0x0c, 0x4c, 0x89, 0x61, 0x5b, 0x9a, 0x16, 0xb4, 0x46, 0xf9, 0x6f, 0x2c, 0xa8, 0xe8, 0xff, 0x41, + 0x83, 0x19, 0xb5, 0xfa, 0xaa, 0x1d, 0x84, 0xe8, 0x3b, 0x33, 0xd3, 0xb9, 0x70, 0xbc, 0xe9, 0xa4, + 0xad, 0xd9, 0x64, 0xce, 0x08, 0x72, 0x55, 0x59, 0xa2, 0x4c, 0x25, 0x81, 0x11, 0x3b, 0x24, 0x1d, + 0xbe, 0xac, 0x4a, 0xf2, 0x51, 0xb5, 0xcb, 0x4b, 0x53, 0x82, 0xd8, 0x48, 0x93, 0xa2, 0xc5, 0x1c, + 0xbb, 0xfe, 0xdd, 0x70, 0x49, 0xad, 0xb5, 0xe1, 0x7b, 0xbb, 0xb6, 0x45, 0x7c, 0xba, 0x13, 0xc2, + 0xfd, 0x6e, 0x66, 0x27, 0xd0, 0x95, 0x85, 0x19, 0x04, 0xbd, 0x17, 0x46, 0x7d, 0xd2, 0xb6, 0x3d, + 0x97, 0x7d, 0xed, 0xf1, 0x78, 0xee, 0x30, 0x2b, 0xc5, 0x02, 0xaa, 0xff, 0x9f, 0x4a, 0x72, 0xee, + 0xe8, 0x67, 0x44, 0xbb, 0x50, 0xed, 0x0a, 0x52, 0x62, 0xee, 0x6e, 0x0d, 0x3a, 0x40, 0xd9, 0xf5, + 0x78, 0x56, 0x65, 0x09, 0x8e, 0x68, 0x21, 0x1b, 0xa6, 0xe5, 0xff, 0xf5, 0x01, 0xd8, 0x3f, 0x63, + 0xa7, 0x1b, 0x09, 0x44, 0x38, 0x85, 0x18, 0x6d, 0xc2, 0x78, 0xc0, 0x98, 0x34, 0x65, 0x5c, 0x43, + 0xc5, 0x8c, 0xab, 0x25, 0x2b, 0x09, 0xc6, 0x35, 0x2b, 0xba, 0x3f, 0x1e, 0x01, 0x70, 0x8c, 0x88, + 0x1e, 0x32, 0x01, 0x21, 0x96, 0x72, 0x5c, 0xb0, 0x43, 0xa6, 0x25, 0xca, 0x70, 0x04, 0xd5, 0x3f, + 0x3f, 0x0c, 0x28, 0xbb, 0xc4, 0xd5, 0x19, 0xe0, 0x25, 0x62, 0xfe, 0x07, 0x99, 0x01, 0xb1, 0x5b, + 0x52, 0x88, 0xd1, 0x9b, 0x30, 0xe5, 0x18, 0x41, 0x78, 0xa7, 0x4b, 0xa5, 0x47, 0xb9, 0x50, 0x26, + 0x9e, 0x59, 0x2c, 0xf3, 0xa5, 0x57, 0x55, 0x44, 0x4b, 0xb3, 0x87, 0x07, 0xb5, 0xa9, 0x44, 0x11, + 0x4e, 0x92, 0x42, 0xaf, 0xc3, 0x38, 0x2d, 0x58, 0xf6, 0x7d, 0xcf, 0x17, 0xb3, 0xff, 0x42, 0x59, + 0xba, 0x0c, 0x09, 0x97, 0x66, 0xa3, 0x9f, 0x38, 0x46, 0x8f, 0xbe, 0x0d, 0x90, 0xb7, 0x15, 0x50, + 0x01, 0xd4, 0xba, 0xc9, 0x45, 0x65, 0x3a, 0x58, 0xfa, 0x75, 0x86, 0x96, 0xe6, 0xc5, 0xd7, 0x44, + 0x77, 0x32, 0x35, 0x70, 0x4e, 0x2b, 0x74, 0x0f, 0x50, 0x24, 0x6e, 0x47, 0x0b, 0x60, 0x6e, 0xe4, + 0xf8, 0xcb, 0xe7, 0x0a, 0x25, 0x76, 0x33, 0x83, 0x02, 0xe7, 0xa0, 0xd5, 0x7f, 0xbd, 0x02, 0x13, + 0x7c, 0x89, 0x2c, 0xbb, 0xa1, 0xbf, 0x7f, 0x0e, 0x07, 0x04, 0x49, 0x1c, 0x10, 0xf5, 0xf2, 0x7b, + 0x9e, 0x75, 0xb8, 0xf0, 0x7c, 0xe8, 0xa4, 0xce, 0x87, 0xe5, 0x41, 0x09, 0xf5, 0x3f, 0x1e, 0xfe, + 0xbd, 0x06, 0x17, 0x94, 0xda, 0xe7, 0x70, 0x3a, 0x58, 0xc9, 0xd3, 0xe1, 0xc5, 0x01, 0xc7, 0x57, + 0x70, 0x38, 0x78, 0x89, 0x61, 0x31, 0xc6, 0xfd, 0x0c, 0xc0, 0x16, 0x63, 0x27, 0xeb, 0xb1, 0x9c, + 0x14, 0x7d, 0xf2, 0xa5, 0x08, 0x82, 0x95, 0x5a, 0x09, 0x9e, 0x55, 0xe9, 0xcb, 0xb3, 0xfe, 0xdb, + 0x10, 0xcc, 0x66, 0xa6, 0x3d, 0xcb, 0x47, 0xb4, 0xaf, 0x12, 0x1f, 0xa9, 0x7c, 0x35, 0xf8, 0xc8, + 0x50, 0x29, 0x3e, 0x72, 0xec, 0x73, 0x02, 0xf9, 0x80, 0x3a, 0x76, 0x9b, 0x37, 0x6b, 0x85, 0x86, + 0x1f, 0x6e, 0xda, 0x1d, 0x22, 0x38, 0xce, 0x37, 0x1c, 0x6f, 0xc9, 0xd2, 0x16, 0x9c, 0xf1, 0xac, + 0x65, 0x30, 0xe1, 0x1c, 0xec, 0xfa, 0xef, 0x0d, 0x03, 0xd4, 0x17, 0xb1, 0x17, 0xf2, 0xce, 0xbe, + 0x08, 0x23, 0xdd, 0x1d, 0x23, 0x90, 0xeb, 0xe9, 0x49, 0xb9, 0x18, 0x37, 0x68, 0xe1, 0x83, 0x83, + 0xda, 0x5c, 0xdd, 0x27, 0x16, 0x71, 0x43, 0xdb, 0x70, 0x02, 0xd9, 0x88, 0xc1, 0x30, 0x6f, 0x47, + 0xc7, 0x40, 0xa7, 0xb1, 0xee, 0x75, 0xba, 0x0e, 0xa1, 0x50, 0x36, 0x86, 0x4a, 0xb9, 0x31, 0xac, + 0x66, 0x30, 0xe1, 0x1c, 0xec, 0x92, 0x66, 0xd3, 0xb5, 0x43, 0xdb, 0x88, 0x68, 0x0e, 0x95, 0xa7, + 0x99, 0xc4, 0x84, 0x73, 0xb0, 0xa3, 0x4f, 0x6b, 0x30, 0x9f, 0x2c, 0x5e, 0xb1, 0x5d, 0x3b, 0xd8, + 0x21, 0x16, 0x23, 0x3e, 0x7c, 0x62, 0xe2, 0xd7, 0x0e, 0x0f, 0x6a, 0xf3, 0xab, 0x85, 0x18, 0x71, + 0x1f, 0x6a, 0xe8, 0x33, 0x1a, 0x3c, 0x9c, 0x9a, 0x17, 0xdf, 0x6e, 0xb7, 0x89, 0x2f, 0x7a, 0x73, + 0xf2, 0x25, 0x54, 0x3b, 0x3c, 0xa8, 0x3d, 0xbc, 0x5a, 0x8c, 0x12, 0xf7, 0xa3, 0xa7, 0xff, 0x9a, + 0x06, 0x43, 0x75, 0xdc, 0x44, 0x4f, 0x25, 0x2e, 0x71, 0x57, 0xd5, 0x4b, 0xdc, 0x83, 0x83, 0xda, + 0x58, 0x1d, 0x37, 0x95, 0xfb, 0xdc, 0x67, 0x34, 0x98, 0x35, 0x3d, 0x37, 0x34, 0x68, 0xbf, 0x30, + 0x97, 0x74, 0x24, 0x57, 0x2d, 0x75, 0x7f, 0xa9, 0xa7, 0x90, 0x2d, 0x3d, 0x24, 0x3a, 0x30, 0x9b, + 0x86, 0x04, 0x38, 0x4b, 0x59, 0xff, 0xb2, 0x06, 0x93, 0x75, 0xc7, 0xeb, 0x59, 0x1b, 0xbe, 0xb7, + 0x6d, 0x3b, 0xe4, 0x9d, 0x71, 0x69, 0x53, 0x7b, 0x5c, 0x74, 0x28, 0xb3, 0x4b, 0x94, 0x5a, 0xf1, + 0x1d, 0x72, 0x89, 0x52, 0xbb, 0x5c, 0x70, 0x4e, 0x7e, 0x07, 0x5c, 0x56, 0x6b, 0x45, 0xc2, 0x18, + 0xbd, 0x45, 0xdd, 0xb3, 0x5d, 0x2b, 0x7d, 0x8b, 0xba, 0x6d, 0xbb, 0x16, 0x66, 0x90, 0x48, 0xe3, + 0x50, 0x29, 0xd2, 0x38, 0xe8, 0x3f, 0x3e, 0x96, 0x9c, 0x36, 0x76, 0x0c, 0x3f, 0x01, 0x55, 0xd3, + 0x58, 0xea, 0xb9, 0x96, 0x13, 0x5d, 0xd1, 0xe8, 0x14, 0xd4, 0x17, 0x79, 0x19, 0x8e, 0xa0, 0xe8, + 0x4d, 0x80, 0x58, 0x5b, 0x27, 0xbe, 0xf1, 0xca, 0x60, 0x1a, 0xc2, 0x16, 0x09, 0x43, 0xdb, 0x6d, + 0x07, 0xf1, 0xba, 0x8a, 0x61, 0x58, 0xa1, 0x86, 0xbe, 0x07, 0xa6, 0xc4, 0x17, 0x6c, 0x76, 0x8c, + 0xb6, 0x50, 0x66, 0x94, 0xfc, 0x0c, 0x6b, 0x0a, 0xa2, 0xa5, 0xcb, 0x82, 0xf0, 0x94, 0x5a, 0x1a, + 0xe0, 0x24, 0x35, 0xb4, 0x0f, 0x93, 0x1d, 0x55, 0x41, 0x33, 0x5c, 0x5e, 0x56, 0x52, 0x94, 0x35, + 0x4b, 0x97, 0x04, 0xf1, 0xc9, 0x84, 0x6a, 0x27, 0x41, 0x2a, 0xe7, 0x9e, 0x39, 0x72, 0x56, 0xf7, + 0x4c, 0x02, 0x63, 0xfc, 0xa6, 0x1d, 0xcc, 0x8d, 0xb2, 0x01, 0x3e, 0x5f, 0x66, 0x80, 0xfc, 0xd2, + 0x1e, 0xab, 0x9f, 0xf9, 0xef, 0x00, 0x4b, 0xdc, 0x68, 0x17, 0x26, 0xa9, 0xc8, 0xd0, 0x22, 0x0e, + 0x31, 0x43, 0xcf, 0x9f, 0x1b, 0x2b, 0xaf, 0xde, 0x6d, 0x29, 0x78, 0xb8, 0x9e, 0x4e, 0x2d, 0xc1, + 0x09, 0x3a, 0x91, 0x22, 0xa2, 0x5a, 0xa8, 0x88, 0xe8, 0xc1, 0xc4, 0xae, 0xa2, 0x30, 0x1b, 0x67, + 0x93, 0xf0, 0xe1, 0x32, 0x1d, 0x8b, 0xb5, 0x67, 0x4b, 0x17, 0x05, 0xa1, 0x09, 0x55, 0xd3, 0xa6, + 0xd2, 0xd1, 0xbf, 0x30, 0x01, 0xb3, 0x75, 0xa7, 0x17, 0x84, 0xc4, 0x5f, 0x14, 0x2f, 0x50, 0xc4, + 0x47, 0x9f, 0xd4, 0xe0, 0x0a, 0xfb, 0xb7, 0xe1, 0xdd, 0x77, 0x1b, 0xc4, 0x31, 0xf6, 0x17, 0xb7, + 0x69, 0x0d, 0xcb, 0x3a, 0x19, 0x7b, 0x6b, 0xf4, 0x84, 0x88, 0xca, 0x34, 0x7f, 0xad, 0x5c, 0x8c, + 0xb8, 0x80, 0x12, 0xfa, 0x21, 0x0d, 0x1e, 0xca, 0x01, 0x35, 0x88, 0x43, 0x42, 0x29, 0x16, 0x9d, + 0xb4, 0x1f, 0x8f, 0x1e, 0x1e, 0xd4, 0x1e, 0x6a, 0x15, 0x21, 0xc5, 0xc5, 0xf4, 0xd0, 0xdf, 0xd7, + 0x60, 0x3e, 0x07, 0xba, 0x62, 0xd8, 0x4e, 0xcf, 0x97, 0x12, 0xd3, 0x49, 0xbb, 0xc3, 0x04, 0x97, + 0x56, 0x21, 0x56, 0xdc, 0x87, 0x22, 0xfa, 0x38, 0x5c, 0x8e, 0xa0, 0x77, 0x5d, 0x97, 0x10, 0x2b, + 0x21, 0x3f, 0x9d, 0xb4, 0x2b, 0x0f, 0x1d, 0x1e, 0xd4, 0x2e, 0xb7, 0xf2, 0x10, 0xe2, 0x7c, 0x3a, + 0xa8, 0x0d, 0x8f, 0xc6, 0x80, 0xd0, 0x76, 0xec, 0x37, 0xb9, 0x88, 0xb7, 0xe3, 0x93, 0x60, 0xc7, + 0x73, 0x2c, 0xc6, 0x2c, 0xb4, 0xa5, 0x77, 0x1f, 0x1e, 0xd4, 0x1e, 0x6d, 0xf5, 0xab, 0x88, 0xfb, + 0xe3, 0x41, 0x16, 0x4c, 0x06, 0xa6, 0xe1, 0x36, 0xdd, 0x90, 0xf8, 0xbb, 0x86, 0x33, 0x37, 0x5a, + 0x6a, 0x80, 0x7c, 0x8b, 0x2a, 0x78, 0x70, 0x02, 0x2b, 0xfa, 0x20, 0x54, 0xc9, 0x5e, 0xd7, 0x70, + 0x2d, 0xc2, 0xd9, 0xc2, 0xf8, 0xd2, 0x23, 0xf4, 0x30, 0x5a, 0x16, 0x65, 0x0f, 0x0e, 0x6a, 0x93, + 0xf2, 0xff, 0x35, 0xcf, 0x22, 0x38, 0xaa, 0x8d, 0x3e, 0x06, 0x97, 0xd8, 0x63, 0x9b, 0x45, 0x18, + 0x93, 0x0b, 0xa4, 0x14, 0x5d, 0x2d, 0xd5, 0x4f, 0xf6, 0x70, 0xb2, 0x96, 0x83, 0x0f, 0xe7, 0x52, + 0xa1, 0x9f, 0xa1, 0x63, 0xec, 0xdd, 0xf4, 0x0d, 0x93, 0x6c, 0xf7, 0x9c, 0x4d, 0xe2, 0x77, 0x6c, + 0x97, 0x5f, 0x54, 0x88, 0xe9, 0xb9, 0x16, 0x65, 0x25, 0xda, 0x13, 0x23, 0xfc, 0x33, 0xac, 0xf5, + 0xab, 0x88, 0xfb, 0xe3, 0x41, 0xef, 0x87, 0x49, 0xbb, 0xed, 0x7a, 0x3e, 0xd9, 0x34, 0x6c, 0x37, + 0x0c, 0xe6, 0x80, 0xe9, 0xf4, 0xd9, 0xb4, 0x36, 0x95, 0x72, 0x9c, 0xa8, 0x85, 0x76, 0x01, 0xb9, + 0xe4, 0xfe, 0x86, 0x67, 0xb1, 0x25, 0x70, 0xb7, 0xcb, 0x16, 0xf2, 0xdc, 0x44, 0xa9, 0xa9, 0x61, + 0x97, 0x8c, 0xf5, 0x0c, 0x36, 0x9c, 0x43, 0x01, 0xad, 0x00, 0xea, 0x18, 0x7b, 0xcb, 0x9d, 0x6e, + 0xb8, 0xbf, 0xd4, 0x73, 0xee, 0x09, 0xae, 0x31, 0xc9, 0xe6, 0x82, 0x5f, 0xf2, 0x32, 0x50, 0x9c, + 0xd3, 0x02, 0x19, 0xf0, 0x30, 0x1f, 0x4f, 0xc3, 0x20, 0x1d, 0xcf, 0x0d, 0x48, 0x18, 0x28, 0x8b, + 0x74, 0x6e, 0x8a, 0x3d, 0x91, 0x31, 0x91, 0xbf, 0x59, 0x5c, 0x0d, 0xf7, 0xc3, 0x91, 0x7c, 0x74, + 0x9e, 0xee, 0xff, 0xe8, 0xac, 0xff, 0xef, 0x61, 0x98, 0xcb, 0x30, 0xec, 0x3b, 0xdd, 0x90, 0x1d, + 0x6f, 0x47, 0x6e, 0x49, 0xed, 0x94, 0xb6, 0x64, 0x17, 0xae, 0x47, 0x15, 0x6e, 0x76, 0x7b, 0xb9, + 0xb4, 0x2a, 0x8c, 0xd6, 0xe3, 0x87, 0x07, 0xb5, 0xeb, 0xad, 0x23, 0xea, 0xe2, 0x23, 0xb1, 0x15, + 0xb3, 0xbb, 0xa1, 0x73, 0x62, 0x77, 0x1f, 0x83, 0x4b, 0x0a, 0xc0, 0x27, 0x86, 0xb5, 0x3f, 0x00, + 0xbb, 0x65, 0xbb, 0xbc, 0x95, 0x83, 0x0f, 0xe7, 0x52, 0x29, 0xe4, 0x31, 0x23, 0xe7, 0xc1, 0x63, + 0xf4, 0x83, 0x21, 0x18, 0xaf, 0x7b, 0xae, 0x65, 0xb3, 0xf5, 0xfa, 0x74, 0xe2, 0x55, 0xe5, 0x51, + 0x55, 0x98, 0x79, 0x70, 0x50, 0x9b, 0x8a, 0x2a, 0x2a, 0xd2, 0xcd, 0x73, 0x91, 0x2a, 0x93, 0x5f, + 0x11, 0xde, 0x9d, 0xd4, 0x41, 0x3e, 0x38, 0xa8, 0x5d, 0x88, 0x9a, 0x25, 0xd5, 0x92, 0x94, 0x81, + 0xd0, 0xfb, 0xf2, 0xa6, 0x6f, 0xb8, 0x81, 0x3d, 0x80, 0x86, 0x22, 0xd2, 0x3d, 0xad, 0x66, 0xb0, + 0xe1, 0x1c, 0x0a, 0xe8, 0x75, 0x98, 0xa6, 0xa5, 0x77, 0xbb, 0x96, 0x11, 0x92, 0x92, 0x8a, 0x89, + 0x2b, 0x82, 0xe6, 0xf4, 0x6a, 0x02, 0x13, 0x4e, 0x61, 0xe6, 0xaf, 0x50, 0x46, 0xe0, 0xb9, 0xec, + 0x7b, 0x26, 0x5e, 0xa1, 0x68, 0x29, 0x16, 0x50, 0xf4, 0x24, 0x8c, 0x75, 0x48, 0x10, 0x18, 0x6d, + 0xc2, 0x0e, 0xc1, 0xf1, 0x58, 0xd2, 0x5d, 0xe3, 0xc5, 0x58, 0xc2, 0xd1, 0xfb, 0x60, 0xc4, 0xf4, + 0x2c, 0x12, 0xcc, 0x8d, 0x31, 0x36, 0x4d, 0x59, 0xde, 0x48, 0x9d, 0x16, 0x3c, 0x38, 0xa8, 0x8d, + 0x33, 0x4d, 0x1d, 0xfd, 0x85, 0x79, 0x25, 0xfd, 0xa7, 0xe8, 0xad, 0x36, 0x75, 0x8d, 0x3f, 0xc6, + 0xeb, 0xd9, 0xf9, 0x3d, 0x44, 0xe9, 0x9f, 0xd5, 0x60, 0x92, 0xf6, 0xd0, 0xf7, 0x9c, 0x0d, 0xc7, + 0x70, 0x09, 0xfa, 0x01, 0x0d, 0x66, 0x76, 0xec, 0xf6, 0x8e, 0xfa, 0xfc, 0x2d, 0xa4, 0xd3, 0x52, + 0xb7, 0xff, 0x5b, 0x29, 0x5c, 0x4b, 0x97, 0x0e, 0x0f, 0x6a, 0x33, 0xe9, 0x52, 0x9c, 0xa1, 0xa9, + 0x7f, 0xaa, 0x02, 0x97, 0x44, 0xcf, 0x1c, 0x2a, 0x2e, 0x76, 0x1d, 0x6f, 0xbf, 0x43, 0xdc, 0xf3, + 0x78, 0xa9, 0x96, 0x5f, 0xa8, 0x52, 0xf8, 0x85, 0x3a, 0x99, 0x2f, 0x34, 0x54, 0xe6, 0x0b, 0x45, + 0x0b, 0xf9, 0x88, 0xaf, 0xf4, 0xa7, 0x1a, 0xcc, 0xe5, 0xcd, 0xc5, 0x39, 0x68, 0x49, 0x3a, 0x49, + 0x2d, 0xc9, 0xad, 0xb2, 0x6a, 0xaf, 0x74, 0xd7, 0x0b, 0xb4, 0x25, 0x7f, 0x52, 0x81, 0x2b, 0x71, + 0xf5, 0xa6, 0x1b, 0x84, 0x86, 0xe3, 0xf0, 0xf3, 0xfc, 0xec, 0xbf, 0x7b, 0x37, 0xa1, 0xec, 0x5a, + 0x1f, 0x6c, 0xa8, 0x6a, 0xdf, 0x0b, 0xdf, 0xa2, 0xf6, 0x52, 0x6f, 0x51, 0x1b, 0xa7, 0x48, 0xb3, + 0xff, 0xb3, 0xd4, 0xff, 0xd0, 0x60, 0x3e, 0xbf, 0xe1, 0x39, 0x2c, 0x2a, 0x2f, 0xb9, 0xa8, 0xbe, + 0xed, 0xf4, 0x46, 0x5d, 0xb0, 0xac, 0x7e, 0xa1, 0x52, 0x34, 0x5a, 0xa6, 0x31, 0xdb, 0x86, 0x0b, + 0x3e, 0x69, 0xdb, 0x41, 0x28, 0x1e, 0x4d, 0x4e, 0x66, 0x4d, 0x24, 0xb5, 0xc8, 0x17, 0x70, 0x12, + 0x07, 0x4e, 0x23, 0x45, 0xeb, 0x30, 0x16, 0x10, 0x62, 0x51, 0xfc, 0x95, 0xe3, 0xe3, 0x8f, 0x4e, + 0xa3, 0x16, 0x6f, 0x8b, 0x25, 0x12, 0xf4, 0x9d, 0x30, 0x65, 0x45, 0x3b, 0xea, 0x08, 0x53, 0x82, + 0x34, 0x56, 0xf6, 0xbc, 0xd5, 0x50, 0x5b, 0xe3, 0x24, 0x32, 0xfd, 0x2f, 0x35, 0x78, 0xa4, 0xdf, + 0xda, 0x42, 0x6f, 0x00, 0x98, 0x52, 0xbc, 0xe0, 0xc6, 0x64, 0x25, 0x1f, 0xc0, 0x22, 0x21, 0x25, + 0xde, 0xa0, 0x51, 0x51, 0x80, 0x15, 0x22, 0x39, 0x16, 0x0a, 0x95, 0x33, 0xb2, 0x50, 0xd0, 0xff, + 0xa7, 0xa6, 0xb2, 0x22, 0xf5, 0xdb, 0xbe, 0xd3, 0x58, 0x91, 0xda, 0xf7, 0x42, 0x0d, 0xfc, 0xef, + 0x57, 0xe0, 0x7a, 0x7e, 0x13, 0xe5, 0xec, 0xfd, 0x08, 0x8c, 0x76, 0xb9, 0xc5, 0xdf, 0x10, 0x3b, + 0x1b, 0x9f, 0xa0, 0x9c, 0x85, 0xdb, 0xe3, 0x3d, 0x38, 0xa8, 0xcd, 0xe7, 0x31, 0x7a, 0x61, 0xc9, + 0x27, 0xda, 0x21, 0x3b, 0xa5, 0x2a, 0xe4, 0xd2, 0xdf, 0x37, 0x1f, 0x93, 0xb9, 0x18, 0x5b, 0xc4, + 0x39, 0xb6, 0x76, 0xf0, 0x13, 0x1a, 0x4c, 0x27, 0x56, 0x74, 0x30, 0x37, 0xc2, 0xd6, 0x68, 0xa9, + 0xc7, 0xe1, 0xc4, 0x56, 0x89, 0x4f, 0xee, 0x44, 0x71, 0x80, 0x53, 0x04, 0x53, 0x6c, 0x56, 0x9d, + 0xd5, 0x77, 0x1c, 0x9b, 0x55, 0x3b, 0x5f, 0xc0, 0x66, 0x7f, 0xb2, 0x52, 0x34, 0x5a, 0xc6, 0x66, + 0xef, 0xc3, 0xb8, 0xb4, 0x85, 0x97, 0xec, 0x62, 0x65, 0xd0, 0x3e, 0x71, 0x74, 0xb1, 0x61, 0x94, + 0x2c, 0x09, 0x70, 0x4c, 0x0b, 0x7d, 0x9f, 0x06, 0x10, 0x7f, 0x18, 0xb1, 0xa9, 0x36, 0x4f, 0x6f, + 0x3a, 0x14, 0xb1, 0x66, 0x9a, 0x6e, 0x69, 0x65, 0x51, 0x28, 0x74, 0xf5, 0xff, 0x3b, 0x04, 0x28, + 0xdb, 0xf7, 0xe3, 0x3d, 0x04, 0x1d, 0x21, 0x90, 0xbe, 0x00, 0x17, 0xda, 0x8e, 0xb7, 0x65, 0x38, + 0xce, 0xbe, 0x30, 0x0e, 0x17, 0x66, 0xc6, 0x17, 0xe9, 0xc1, 0x74, 0x33, 0x09, 0xc2, 0xe9, 0xba, + 0xa8, 0x0b, 0x33, 0x3e, 0x31, 0x3d, 0xd7, 0xb4, 0x1d, 0x76, 0x75, 0xf2, 0x7a, 0x61, 0xc9, 0x1b, + 0x38, 0x13, 0xef, 0x71, 0x0a, 0x17, 0xce, 0x60, 0x47, 0xef, 0x81, 0xb1, 0xae, 0x6f, 0x77, 0x0c, + 0x7f, 0x9f, 0x5d, 0xce, 0xaa, 0x4b, 0x13, 0xf4, 0x84, 0xdb, 0xe0, 0x45, 0x58, 0xc2, 0xd0, 0xc7, + 0x60, 0xdc, 0xb1, 0xb7, 0x89, 0xb9, 0x6f, 0x3a, 0x44, 0x68, 0x28, 0xef, 0x9c, 0xce, 0x92, 0x59, + 0x95, 0x68, 0x85, 0xd1, 0x85, 0xfc, 0x89, 0x63, 0x82, 0xa8, 0x09, 0x17, 0xef, 0x7b, 0xfe, 0x3d, + 0xe2, 0x3b, 0x24, 0x08, 0x5a, 0xbd, 0x6e, 0xd7, 0xf3, 0x43, 0x62, 0x31, 0x3d, 0x66, 0x95, 0x5b, + 0xc0, 0xbf, 0x9c, 0x05, 0xe3, 0xbc, 0x36, 0xfa, 0xa7, 0x2b, 0xf0, 0x70, 0x9f, 0x4e, 0x20, 0x4c, + 0xf7, 0x86, 0x98, 0x23, 0xb1, 0x12, 0xde, 0xcf, 0xd7, 0xb3, 0x28, 0x7c, 0x70, 0x50, 0x7b, 0xac, + 0x0f, 0x82, 0x16, 0x5d, 0x8a, 0xa4, 0xbd, 0x8f, 0x63, 0x34, 0xa8, 0x09, 0xa3, 0x56, 0xac, 0xd6, + 0x1f, 0x5f, 0x7a, 0x9a, 0x72, 0x6b, 0xae, 0x80, 0x3b, 0x2e, 0x36, 0x81, 0x00, 0xad, 0xc2, 0x18, + 0x37, 0xd5, 0x20, 0x82, 0xf3, 0x3f, 0xc3, 0xae, 0xc7, 0xbc, 0xe8, 0xb8, 0xc8, 0x24, 0x0a, 0xfd, + 0x2f, 0x34, 0x18, 0xab, 0x7b, 0x3e, 0x69, 0xac, 0xb7, 0xd0, 0x3e, 0x4c, 0x28, 0x4e, 0x3a, 0x82, + 0x0b, 0x96, 0x64, 0x0b, 0x0c, 0xe3, 0x62, 0x8c, 0x4d, 0x1a, 0x94, 0x47, 0x05, 0x58, 0xa5, 0x85, + 0xde, 0xa0, 0x73, 0x7e, 0xdf, 0xb7, 0x43, 0x4a, 0x78, 0x90, 0x17, 0x6e, 0x4e, 0x18, 0x4b, 0x5c, + 0x7c, 0x45, 0x45, 0x3f, 0x71, 0x4c, 0x45, 0xdf, 0xa0, 0x1c, 0x20, 0xdd, 0x4d, 0xf4, 0x3c, 0x0c, + 0x77, 0x3c, 0x4b, 0x7e, 0xf7, 0xf7, 0xca, 0xfd, 0xbd, 0xe6, 0x59, 0x74, 0x6e, 0xaf, 0x64, 0x5b, + 0x30, 0x55, 0x39, 0x6b, 0xa3, 0xaf, 0xc3, 0x4c, 0x9a, 0x3e, 0x7a, 0x1e, 0xa6, 0x4d, 0xaf, 0xd3, + 0xf1, 0xdc, 0x56, 0x6f, 0x7b, 0xdb, 0xde, 0x23, 0x09, 0x4b, 0xff, 0x7a, 0x02, 0x82, 0x53, 0x35, + 0xf5, 0x9f, 0xd0, 0x60, 0x88, 0x7e, 0x17, 0x1d, 0x46, 0x2d, 0xaf, 0x63, 0xd8, 0xae, 0xe8, 0x15, + 0xf3, 0x6a, 0x68, 0xb0, 0x12, 0x2c, 0x20, 0xa8, 0x0b, 0xe3, 0x52, 0x68, 0x1a, 0xc8, 0xda, 0xac, + 0xb1, 0xde, 0x8a, 0x2c, 0x74, 0x23, 0x4e, 0x2e, 0x4b, 0x02, 0x1c, 0x13, 0xd1, 0x0d, 0x98, 0x6d, + 0xac, 0xb7, 0x9a, 0xae, 0xe9, 0xf4, 0x2c, 0xb2, 0xbc, 0xc7, 0xfe, 0x50, 0x5e, 0x62, 0xf3, 0x12, + 0x31, 0x4e, 0xc6, 0x4b, 0x44, 0x25, 0x2c, 0x61, 0xb4, 0x1a, 0xe1, 0x2d, 0x84, 0x39, 0x3e, 0xab, + 0x26, 0x90, 0x60, 0x09, 0xd3, 0xbf, 0x5c, 0x81, 0x09, 0xa5, 0x43, 0xc8, 0x81, 0x31, 0x3e, 0x5c, + 0x69, 0x0d, 0xbb, 0x5c, 0x72, 0x88, 0xc9, 0x5e, 0x73, 0xea, 0x7c, 0x42, 0x03, 0x2c, 0x49, 0xa8, + 0x7c, 0xb1, 0xd2, 0x87, 0x2f, 0x2e, 0x00, 0x04, 0xb1, 0x6f, 0x08, 0xdf, 0x92, 0xec, 0xe8, 0x51, + 0x3c, 0x42, 0x94, 0x1a, 0xe8, 0x11, 0x71, 0x82, 0x70, 0x73, 0xaf, 0x6a, 0xea, 0xf4, 0xd8, 0x86, + 0x91, 0x37, 0x3d, 0x97, 0x04, 0x42, 0xef, 0x79, 0x4a, 0x03, 0x1c, 0xa7, 0xf2, 0xc1, 0xab, 0x14, + 0x2f, 0xe6, 0xe8, 0xf5, 0x9f, 0xd6, 0x00, 0x1a, 0x46, 0x68, 0xf0, 0x77, 0xd3, 0x63, 0x78, 0x54, + 0x3c, 0x92, 0x38, 0xf8, 0xaa, 0x19, 0x2b, 0xf3, 0xe1, 0xc0, 0x7e, 0x53, 0x0e, 0x3f, 0x12, 0xa8, + 0x39, 0xf6, 0x96, 0xfd, 0x26, 0xc1, 0x0c, 0x8e, 0x9e, 0x82, 0x71, 0xe2, 0x9a, 0xfe, 0x7e, 0x97, + 0x32, 0xef, 0x61, 0x36, 0xab, 0x6c, 0x87, 0x2e, 0xcb, 0x42, 0x1c, 0xc3, 0xf5, 0xa7, 0x21, 0x79, + 0x2b, 0x3a, 0xba, 0x97, 0xfa, 0x5f, 0x69, 0x70, 0xb5, 0xd1, 0x33, 0x9c, 0xc5, 0x2e, 0x5d, 0xa8, + 0x86, 0xb3, 0xe2, 0xf1, 0xe7, 0x4d, 0x7a, 0x55, 0x78, 0x1f, 0x54, 0xa5, 0x1c, 0x22, 0x30, 0x44, + 0x12, 0x9b, 0x64, 0x94, 0x38, 0xaa, 0x81, 0x0c, 0xa8, 0x06, 0x52, 0x32, 0xae, 0x0c, 0x20, 0x19, + 0x4b, 0x12, 0x91, 0x64, 0x1c, 0xa1, 0x45, 0x18, 0xae, 0x88, 0x0d, 0xd1, 0x22, 0xfe, 0xae, 0x6d, + 0x92, 0x45, 0xd3, 0xf4, 0x7a, 0x6e, 0x18, 0x08, 0x81, 0x81, 0xbd, 0x29, 0x37, 0x73, 0x6b, 0xe0, + 0x82, 0x96, 0xfa, 0x57, 0x86, 0xe1, 0xa1, 0xe5, 0xcd, 0x7a, 0x43, 0x4c, 0xa8, 0xed, 0xb9, 0xb7, + 0xc9, 0xfe, 0xd7, 0x2d, 0xf8, 0xbe, 0x6e, 0xc1, 0x77, 0x8a, 0x16, 0x7c, 0x2f, 0xc2, 0x4c, 0xbc, + 0xbc, 0x84, 0x79, 0xcb, 0x53, 0xe9, 0x0b, 0xc5, 0xb8, 0x3c, 0x7a, 0xb3, 0x97, 0x00, 0xfd, 0x81, + 0x06, 0x33, 0xcb, 0x7b, 0x5d, 0xdb, 0x67, 0xbe, 0x50, 0xc4, 0x0f, 0x6c, 0xae, 0xfa, 0xdf, 0xe5, + 0xff, 0x8a, 0xd5, 0x19, 0x29, 0x5b, 0x44, 0x0d, 0x2c, 0xe1, 0x68, 0x1b, 0xa6, 0x09, 0x6b, 0xce, + 0x24, 0x7e, 0x23, 0x2c, 0xb3, 0x02, 0xb9, 0xab, 0x5d, 0x02, 0x0b, 0x4e, 0x61, 0x45, 0x2d, 0x98, + 0x36, 0x1d, 0x23, 0x08, 0xec, 0x6d, 0xdb, 0x8c, 0xad, 0x7c, 0xc7, 0x97, 0x9e, 0x62, 0x87, 0x77, + 0x02, 0xf2, 0xe0, 0xa0, 0x76, 0x59, 0xf4, 0x33, 0x09, 0xc0, 0x29, 0x14, 0xfa, 0xdb, 0x15, 0x98, + 0x5a, 0xde, 0xeb, 0x7a, 0x41, 0xcf, 0x27, 0xac, 0xea, 0x39, 0xe8, 0x30, 0x9e, 0x84, 0xb1, 0x1d, + 0xc3, 0xb5, 0x1c, 0xe2, 0x0b, 0xfe, 0x1d, 0xcd, 0xed, 0x2d, 0x5e, 0x8c, 0x25, 0x1c, 0xbd, 0x05, + 0x10, 0x98, 0x3b, 0xc4, 0xea, 0x31, 0x19, 0x90, 0xef, 0xb2, 0xdb, 0x65, 0x4e, 0xa1, 0xc4, 0x18, + 0x5b, 0x11, 0x4a, 0x71, 0x36, 0x46, 0xbf, 0xb1, 0x42, 0x4e, 0xff, 0x03, 0x0d, 0x66, 0x13, 0xed, + 0xce, 0xe1, 0x6a, 0xbe, 0x9d, 0xbc, 0x9a, 0x2f, 0x0e, 0x3c, 0xd6, 0x82, 0x1b, 0xf9, 0x0f, 0x56, + 0xe0, 0x6a, 0xc1, 0x9c, 0x64, 0xac, 0xb6, 0xb4, 0x73, 0xb2, 0xda, 0xea, 0xc1, 0x44, 0xe8, 0x39, + 0xc2, 0x18, 0x5d, 0xce, 0x40, 0x29, 0x9b, 0xac, 0xcd, 0x08, 0x4d, 0x6c, 0x93, 0x15, 0x97, 0x05, + 0x58, 0xa5, 0xa3, 0xff, 0x9a, 0x06, 0xe3, 0x91, 0x06, 0xf0, 0x6b, 0xea, 0x15, 0xee, 0xf8, 0xde, + 0xc1, 0xfa, 0x6f, 0x55, 0xe0, 0x4a, 0x84, 0x5b, 0xb2, 0xb9, 0x56, 0x48, 0xf9, 0xc6, 0xd1, 0x6a, + 0x84, 0x47, 0x12, 0xf6, 0xa4, 0xd5, 0x94, 0xac, 0x45, 0x25, 0xcf, 0x9e, 0xdf, 0xf5, 0x02, 0x29, + 0x50, 0x71, 0xc9, 0x93, 0x17, 0x61, 0x09, 0x43, 0xeb, 0x30, 0x12, 0x50, 0x7a, 0xe2, 0x38, 0x3a, + 0xe1, 0x6c, 0x30, 0x99, 0x90, 0xf5, 0x17, 0x73, 0x34, 0xe8, 0x2d, 0x95, 0x87, 0x8f, 0x94, 0x57, + 0x54, 0xd1, 0x91, 0x58, 0x91, 0x48, 0x95, 0xf5, 0x98, 0xcb, 0x3d, 0x13, 0x56, 0x61, 0x46, 0x18, + 0x7e, 0xf1, 0x65, 0xe3, 0x9a, 0x04, 0x7d, 0x30, 0xb1, 0x32, 0x1e, 0x4f, 0xbd, 0xc3, 0x5f, 0x4a, + 0xd7, 0x8f, 0x57, 0x8c, 0x1e, 0x40, 0xf5, 0xa6, 0xe8, 0x24, 0x9a, 0x87, 0x8a, 0x2d, 0xbf, 0x05, + 0x08, 0x1c, 0x95, 0x66, 0x03, 0x57, 0xec, 0x63, 0xd8, 0xf5, 0xaa, 0xc7, 0xd2, 0x50, 0xff, 0x63, + 0x49, 0xff, 0xe3, 0x0a, 0x5c, 0x92, 0x54, 0xe5, 0x18, 0x1b, 0xe2, 0x15, 0xf3, 0x08, 0xe9, 0xfa, + 0x68, 0xb5, 0xd2, 0x1d, 0x18, 0x66, 0x0c, 0xb0, 0xd4, 0xeb, 0x66, 0x84, 0x90, 0x76, 0x07, 0x33, + 0x44, 0xe8, 0x63, 0x30, 0xea, 0x50, 0x51, 0x55, 0x1a, 0xdc, 0x96, 0x52, 0xc2, 0xe5, 0x0d, 0x97, + 0x4b, 0xc0, 0x01, 0xf7, 0x58, 0x8a, 0x1e, 0xbd, 0x78, 0x21, 0x16, 0x34, 0xe7, 0x9f, 0x83, 0x09, + 0xa5, 0x1a, 0x9a, 0x81, 0xa1, 0x7b, 0x84, 0xbf, 0x6e, 0x8f, 0x63, 0xfa, 0x2f, 0xba, 0x04, 0x23, + 0xbb, 0x86, 0xd3, 0x13, 0x53, 0x82, 0xf9, 0x8f, 0xe7, 0x2b, 0x1f, 0xd4, 0xf4, 0x2f, 0x68, 0x30, + 0x71, 0xcb, 0xde, 0x22, 0x3e, 0xb7, 0xde, 0x62, 0x97, 0xc9, 0x44, 0x70, 0x86, 0x89, 0xbc, 0xc0, + 0x0c, 0x68, 0x0f, 0xc6, 0xc5, 0x49, 0x13, 0x79, 0x0e, 0xdc, 0x2c, 0xf7, 0x8c, 0x1e, 0x91, 0x16, + 0x1c, 0x5c, 0x75, 0x06, 0x95, 0x14, 0x70, 0x4c, 0x4c, 0x7f, 0x0b, 0x2e, 0xe6, 0x34, 0x42, 0x35, + 0xb6, 0x7d, 0xfd, 0x50, 0x2c, 0x0b, 0xb9, 0x1f, 0xfd, 0x10, 0xf3, 0x72, 0xf4, 0x10, 0x0c, 0x11, + 0xd7, 0x12, 0x6b, 0x62, 0xec, 0xf0, 0xa0, 0x36, 0xb4, 0xec, 0x5a, 0x98, 0x96, 0x51, 0x36, 0xe5, + 0x78, 0x09, 0x99, 0x84, 0xb1, 0xa9, 0x55, 0x51, 0x86, 0x23, 0x28, 0x33, 0x7c, 0x48, 0xbf, 0xf1, + 0x53, 0xf1, 0x76, 0x66, 0x3b, 0xb5, 0x7b, 0x06, 0x31, 0x2d, 0x48, 0xef, 0xc4, 0xa5, 0x39, 0x31, + 0x21, 0x99, 0x3d, 0x8d, 0x33, 0x74, 0xf5, 0x5f, 0x1e, 0x86, 0x47, 0x6f, 0x79, 0xbe, 0xfd, 0xa6, + 0xe7, 0x86, 0x86, 0xb3, 0xe1, 0x59, 0xb1, 0xd9, 0x97, 0x60, 0xca, 0xdf, 0xaf, 0xc1, 0x55, 0xb3, + 0xdb, 0xe3, 0xe2, 0xb1, 0xb4, 0x9c, 0xda, 0x20, 0xbe, 0xed, 0x95, 0x35, 0xd7, 0x65, 0xee, 0xff, + 0xf5, 0x8d, 0xbb, 0x79, 0x28, 0x71, 0x11, 0x2d, 0x66, 0x35, 0x6c, 0x79, 0xf7, 0x5d, 0xd6, 0xb9, + 0x56, 0xc8, 0x66, 0xf3, 0xcd, 0xf8, 0x23, 0x94, 0xb4, 0x1a, 0x6e, 0xe4, 0x62, 0xc4, 0x05, 0x94, + 0xd0, 0xc7, 0xe1, 0xb2, 0xcd, 0x3b, 0x87, 0x89, 0x61, 0xd9, 0x2e, 0x09, 0x02, 0x6e, 0x72, 0x38, + 0x80, 0x59, 0x6c, 0x33, 0x0f, 0x21, 0xce, 0xa7, 0x83, 0x5e, 0x03, 0x08, 0xf6, 0x5d, 0x53, 0xcc, + 0x7f, 0x39, 0xfb, 0x2c, 0x2e, 0x04, 0x46, 0x58, 0xb0, 0x82, 0x91, 0x5e, 0x25, 0xc2, 0x68, 0x51, + 0x8e, 0x32, 0x1b, 0x3b, 0x76, 0x95, 0x88, 0xd7, 0x50, 0x0c, 0xd7, 0xff, 0xb9, 0x06, 0x63, 0x22, + 0xc4, 0x08, 0x7a, 0x6f, 0x4a, 0x4f, 0x16, 0xf1, 0x9e, 0x94, 0xae, 0x6c, 0x9f, 0x3d, 0x96, 0x0a, + 0x1d, 0xa9, 0x10, 0x25, 0x4a, 0x29, 0x5a, 0x04, 0xe1, 0x58, 0xe1, 0x9a, 0x78, 0x34, 0x95, 0x4a, + 0x58, 0x85, 0x98, 0xfe, 0x79, 0x0d, 0x66, 0x33, 0xad, 0x8e, 0x21, 0x2f, 0x9c, 0xa3, 0x1d, 0xd2, + 0xef, 0x0f, 0xc3, 0x34, 0xb3, 0x19, 0x76, 0x0d, 0x87, 0xab, 0xb0, 0xce, 0xe1, 0x82, 0xf2, 0x14, + 0x8c, 0xdb, 0x9d, 0x4e, 0x2f, 0xa4, 0xac, 0x5a, 0xbc, 0x42, 0xb0, 0x6f, 0xde, 0x94, 0x85, 0x38, + 0x86, 0x23, 0x57, 0x1c, 0x85, 0x9c, 0x89, 0xaf, 0x96, 0xfb, 0x72, 0xea, 0x00, 0x17, 0xe8, 0xb1, + 0xc5, 0xcf, 0xab, 0xbc, 0x93, 0xf2, 0x07, 0x34, 0x80, 0x20, 0xf4, 0x6d, 0xb7, 0x4d, 0x0b, 0xc5, + 0x71, 0x89, 0x4f, 0x81, 0x6c, 0x2b, 0x42, 0xca, 0x89, 0x47, 0x73, 0x14, 0x03, 0xb0, 0x42, 0x19, + 0x2d, 0x0a, 0x29, 0x81, 0x73, 0xfc, 0x6f, 0x4c, 0xc9, 0x43, 0x8f, 0x66, 0x23, 0x68, 0x09, 0xb7, + 0xf3, 0x58, 0x8c, 0x98, 0x7f, 0x16, 0xc6, 0x23, 0x7a, 0x47, 0x9d, 0xba, 0x93, 0xca, 0xa9, 0x3b, + 0xff, 0x02, 0x5c, 0x48, 0x75, 0xf7, 0x44, 0x87, 0xf6, 0x7f, 0xd2, 0x00, 0x25, 0x47, 0x7f, 0x0e, + 0x57, 0xbb, 0x76, 0xf2, 0x6a, 0xb7, 0x34, 0xf8, 0x27, 0x2b, 0xb8, 0xdb, 0xfd, 0xc1, 0x34, 0xb0, + 0x08, 0x4c, 0x51, 0x84, 0x2b, 0x71, 0x70, 0xd1, 0x73, 0x36, 0x76, 0xb4, 0x12, 0x3b, 0x77, 0x80, + 0x73, 0xf6, 0x76, 0x0a, 0x57, 0x7c, 0xce, 0xa6, 0x21, 0x38, 0x43, 0x17, 0x7d, 0x4a, 0x83, 0x19, + 0x23, 0x19, 0x81, 0x49, 0xce, 0x4c, 0x29, 0x0f, 0xff, 0x54, 0x34, 0xa7, 0xb8, 0x2f, 0x29, 0x40, + 0x80, 0x33, 0x64, 0xd1, 0xfb, 0x61, 0xd2, 0xe8, 0xda, 0x8b, 0x3d, 0xcb, 0xa6, 0x57, 0x03, 0x19, + 0x3e, 0x87, 0x5d, 0x57, 0x17, 0x37, 0x9a, 0x51, 0x39, 0x4e, 0xd4, 0x8a, 0x42, 0x1d, 0x89, 0x89, + 0x1c, 0x1e, 0x30, 0xd4, 0x91, 0x98, 0xc3, 0x38, 0xd4, 0x91, 0x98, 0x3a, 0x95, 0x08, 0x72, 0x01, + 0x3c, 0xdb, 0x32, 0x05, 0x49, 0xfe, 0xee, 0x59, 0xea, 0x86, 0x7c, 0xa7, 0xd9, 0xa8, 0x0b, 0x8a, + 0xec, 0xf4, 0x8b, 0x7f, 0x63, 0x85, 0x02, 0xfa, 0xac, 0x06, 0x53, 0x82, 0x77, 0x0b, 0x9a, 0x63, + 0xec, 0x13, 0xbd, 0x5a, 0x76, 0xbd, 0xa4, 0xd6, 0xe4, 0x02, 0x56, 0x91, 0x73, 0xbe, 0x13, 0xf9, + 0xe9, 0x25, 0x60, 0x38, 0xd9, 0x0f, 0xf4, 0x0f, 0x34, 0xb8, 0x14, 0x24, 0xd4, 0xcd, 0xa2, 0x83, + 0xd5, 0xf2, 0x91, 0x61, 0x5a, 0x39, 0xf8, 0x84, 0xe9, 0x78, 0x0e, 0x04, 0xe7, 0xd2, 0xa7, 0x62, + 0xd9, 0x85, 0xfb, 0x46, 0x68, 0xee, 0xd4, 0x0d, 0x73, 0x87, 0xbd, 0x36, 0x70, 0x9f, 0x90, 0x92, + 0xeb, 0xfa, 0xe5, 0x24, 0x2a, 0xfe, 0x6e, 0x9f, 0x2a, 0xc4, 0x69, 0x82, 0xc8, 0x83, 0xaa, 0x2f, + 0xc2, 0xda, 0xcd, 0x41, 0x79, 0x91, 0x22, 0x13, 0x23, 0x8f, 0x0b, 0xf6, 0xf2, 0x17, 0x8e, 0x88, + 0xa0, 0x36, 0x3c, 0xca, 0xaf, 0x36, 0x8b, 0xae, 0xe7, 0xee, 0x77, 0xbc, 0x5e, 0xb0, 0xd8, 0x0b, + 0x77, 0x88, 0x1b, 0x4a, 0x5d, 0xe5, 0x04, 0x3b, 0x46, 0x99, 0x2b, 0xc4, 0x72, 0xbf, 0x8a, 0xb8, + 0x3f, 0x1e, 0xf4, 0x0a, 0x54, 0xc9, 0x2e, 0x71, 0xc3, 0xcd, 0xcd, 0x55, 0xe6, 0x5e, 0x72, 0x72, + 0x69, 0x8f, 0x0d, 0x61, 0x59, 0xe0, 0xc0, 0x11, 0x36, 0x74, 0x0f, 0xc6, 0x1c, 0x1e, 0x97, 0x90, + 0xb9, 0x99, 0x94, 0x64, 0x8a, 0xe9, 0x18, 0x87, 0xfc, 0xfe, 0x27, 0x7e, 0x60, 0x49, 0x01, 0x75, + 0xe1, 0xba, 0x45, 0xb6, 0x8d, 0x9e, 0x13, 0xae, 0x7b, 0x21, 0x66, 0x7e, 0x07, 0x91, 0x4a, 0x4a, + 0x7a, 0x12, 0x4d, 0xb3, 0x20, 0x0e, 0xcc, 0xa3, 0xa3, 0x71, 0x44, 0x5d, 0x7c, 0x24, 0x36, 0xb4, + 0x0f, 0x8f, 0x89, 0x3a, 0xcc, 0xd1, 0xc1, 0xdc, 0xa1, 0xb3, 0x9c, 0x25, 0x7a, 0x81, 0x11, 0xfd, + 0x5b, 0x87, 0x07, 0xb5, 0xc7, 0x1a, 0x47, 0x57, 0xc7, 0xc7, 0xc1, 0xc9, 0x6c, 0xc7, 0x49, 0x4a, + 0x47, 0x3f, 0x37, 0x53, 0x7e, 0x8e, 0xd3, 0xfa, 0x7e, 0x6e, 0x5c, 0x92, 0x2e, 0xc5, 0x19, 0x9a, + 0xf3, 0x1f, 0x01, 0x94, 0x65, 0x38, 0x47, 0x49, 0x0e, 0x55, 0x55, 0x72, 0xf8, 0xdc, 0x08, 0x3c, + 0x4c, 0xf9, 0x58, 0x2c, 0x2f, 0xaf, 0x19, 0xae, 0xd1, 0xfe, 0xda, 0x3c, 0x63, 0xbf, 0xa0, 0xc1, + 0xd5, 0x9d, 0xfc, 0xbb, 0xac, 0x90, 0xd8, 0x3f, 0x5a, 0x4a, 0xe7, 0xd0, 0xef, 0x7a, 0xcc, 0xb7, + 0x78, 0xdf, 0x2a, 0xb8, 0xa8, 0x53, 0xe8, 0x23, 0x30, 0xe3, 0x7a, 0x16, 0xa9, 0x37, 0x1b, 0x78, + 0xcd, 0x08, 0xee, 0xb5, 0xe4, 0x23, 0xee, 0x08, 0xff, 0xc2, 0xeb, 0x29, 0x18, 0xce, 0xd4, 0x46, + 0xbb, 0x80, 0xba, 0x9e, 0xb5, 0xbc, 0x6b, 0x9b, 0xf2, 0xf5, 0xac, 0xbc, 0xc9, 0x12, 0x7b, 0xa2, + 0xdb, 0xc8, 0x60, 0xc3, 0x39, 0x14, 0xd8, 0x65, 0x9c, 0x76, 0x66, 0xcd, 0x73, 0xed, 0xd0, 0xf3, + 0x99, 0x5f, 0xdf, 0x40, 0x77, 0x52, 0x76, 0x19, 0x5f, 0xcf, 0xc5, 0x88, 0x0b, 0x28, 0xe9, 0xff, + 0x4b, 0x83, 0x0b, 0x74, 0x59, 0x6c, 0xf8, 0xde, 0xde, 0xfe, 0xd7, 0xe2, 0x82, 0x7c, 0x52, 0xd8, + 0xb3, 0x70, 0x25, 0xd2, 0x65, 0xc5, 0x96, 0x65, 0x9c, 0xf5, 0x39, 0x36, 0x5f, 0x51, 0xf5, 0x68, + 0x43, 0xc5, 0x7a, 0x34, 0xfd, 0xb3, 0x15, 0x2e, 0xeb, 0x4a, 0x3d, 0xd6, 0xd7, 0xe4, 0x3e, 0x7c, + 0x16, 0xa6, 0x68, 0xd9, 0x9a, 0xb1, 0xb7, 0xd1, 0x78, 0xc9, 0x73, 0xa4, 0x57, 0x16, 0xb3, 0xb4, + 0xbe, 0xad, 0x02, 0x70, 0xb2, 0x1e, 0x7a, 0x1e, 0xc6, 0xba, 0x3c, 0x80, 0x83, 0xb8, 0x65, 0x5d, + 0xe7, 0x46, 0x1f, 0xac, 0xe8, 0xc1, 0x41, 0x6d, 0x36, 0x7e, 0xb5, 0x91, 0x61, 0x24, 0x64, 0x03, + 0xfd, 0xaf, 0x2f, 0x02, 0x43, 0xee, 0x90, 0xf0, 0x6b, 0x71, 0x4e, 0x9e, 0x86, 0x09, 0xb3, 0xdb, + 0xab, 0xaf, 0xb4, 0x3e, 0xda, 0xf3, 0xd8, 0xed, 0x99, 0x05, 0xb2, 0xa5, 0xc2, 0x6f, 0x7d, 0xe3, + 0xae, 0x2c, 0xc6, 0x6a, 0x1d, 0xca, 0x1d, 0xcc, 0x6e, 0x4f, 0xf0, 0xdb, 0x0d, 0xd5, 0xdc, 0x98, + 0x71, 0x87, 0xfa, 0xc6, 0xdd, 0x04, 0x0c, 0x67, 0x6a, 0xa3, 0x8f, 0xc3, 0x24, 0x11, 0x1b, 0xf7, + 0x96, 0xe1, 0x5b, 0x82, 0x2f, 0x34, 0xcb, 0x0e, 0x3e, 0x9a, 0x5a, 0xc9, 0x0d, 0xf8, 0x9d, 0x61, + 0x59, 0x21, 0x81, 0x13, 0x04, 0xd1, 0x77, 0xc0, 0x43, 0xf2, 0x37, 0xfd, 0xca, 0x9e, 0x95, 0x66, + 0x14, 0x23, 0xdc, 0x67, 0x7e, 0xb9, 0xa8, 0x12, 0x2e, 0x6e, 0x8f, 0x7e, 0x4e, 0x83, 0x2b, 0x11, + 0xd4, 0x76, 0xed, 0x4e, 0xaf, 0x83, 0x89, 0xe9, 0x18, 0x76, 0x47, 0xdc, 0x14, 0x5e, 0x3e, 0xb5, + 0x81, 0x26, 0xd1, 0x73, 0x66, 0x95, 0x0f, 0xc3, 0x05, 0x5d, 0x42, 0x9f, 0xd7, 0xe0, 0xba, 0x04, + 0x6d, 0xf8, 0x24, 0x08, 0x7a, 0x3e, 0x89, 0x7d, 0x02, 0xc5, 0x94, 0x8c, 0x95, 0xe2, 0x9d, 0x4c, + 0x64, 0x5a, 0x3e, 0x02, 0x37, 0x3e, 0x92, 0xba, 0xba, 0x5c, 0x5a, 0xde, 0x76, 0x28, 0xae, 0x16, + 0x67, 0xb5, 0x5c, 0x28, 0x09, 0x9c, 0x20, 0x88, 0xfe, 0x85, 0x06, 0x57, 0xd5, 0x02, 0x75, 0xb5, + 0xf0, 0x3b, 0xc5, 0x2b, 0xa7, 0xd6, 0x99, 0x14, 0x7e, 0xae, 0x94, 0x2e, 0x00, 0xe2, 0xa2, 0x5e, + 0x51, 0xb6, 0xdd, 0x61, 0x0b, 0x93, 0xdf, 0x3b, 0x46, 0x38, 0xdb, 0xe6, 0x6b, 0x35, 0xc0, 0x12, + 0x46, 0x6f, 0xdc, 0x5d, 0xcf, 0xda, 0xb0, 0xad, 0x60, 0xd5, 0xee, 0xd8, 0x21, 0xbb, 0x1d, 0x0c, + 0xf1, 0xe9, 0xd8, 0xf0, 0xac, 0x8d, 0x66, 0x83, 0x97, 0xe3, 0x44, 0x2d, 0xb4, 0x00, 0xb0, 0x6d, + 0xd8, 0x4e, 0xeb, 0xbe, 0xd1, 0xbd, 0x23, 0x7d, 0xc1, 0xd9, 0xed, 0x75, 0x25, 0x2a, 0xc5, 0x4a, + 0x0d, 0xfa, 0xfd, 0x28, 0xdf, 0xc1, 0x84, 0x47, 0x3a, 0x63, 0x02, 0xf5, 0x69, 0x7c, 0x3f, 0x89, + 0x90, 0x77, 0xf8, 0xb6, 0x42, 0x02, 0x27, 0x08, 0xa2, 0xef, 0xd7, 0x60, 0x3a, 0xd8, 0x0f, 0x42, + 0xd2, 0x89, 0xfa, 0x70, 0xe1, 0xb4, 0xfb, 0xc0, 0xb4, 0xa8, 0xad, 0x04, 0x11, 0x9c, 0x22, 0xca, + 0xbc, 0xea, 0x3b, 0x46, 0x9b, 0xdc, 0xac, 0xdf, 0xb2, 0xdb, 0x3b, 0x91, 0x97, 0xf7, 0x06, 0xf1, + 0x4d, 0xe2, 0x86, 0x4c, 0x14, 0x1f, 0x11, 0x5e, 0xf5, 0xc5, 0xd5, 0x70, 0x3f, 0x1c, 0xe8, 0x35, + 0x98, 0x17, 0xe0, 0x55, 0xef, 0x7e, 0x86, 0xc2, 0x2c, 0xa3, 0xc0, 0xcc, 0x8e, 0x9a, 0x85, 0xb5, + 0x70, 0x1f, 0x0c, 0xa8, 0x09, 0x17, 0x03, 0xe2, 0xb3, 0x47, 0x10, 0x1e, 0xaa, 0x67, 0xa3, 0xe7, + 0x38, 0xc1, 0x1c, 0x8a, 0x4d, 0xae, 0x5b, 0x59, 0x30, 0xce, 0x6b, 0x83, 0x5e, 0x88, 0xbc, 0xba, + 0xf6, 0x69, 0xc1, 0x47, 0x37, 0x5a, 0x73, 0x17, 0x59, 0xff, 0x2e, 0x2a, 0xce, 0x5a, 0x12, 0x84, + 0xd3, 0x75, 0xe9, 0x69, 0x2e, 0x8b, 0x96, 0x7a, 0x7e, 0x10, 0xce, 0x5d, 0x62, 0x8d, 0xd9, 0x69, + 0x8e, 0x55, 0x00, 0x4e, 0xd6, 0x43, 0xcf, 0xc3, 0x74, 0x40, 0x4c, 0xd3, 0xeb, 0x74, 0xc5, 0xcd, + 0x6a, 0xee, 0x32, 0xeb, 0x3d, 0xff, 0x82, 0x09, 0x08, 0x4e, 0xd5, 0x44, 0xfb, 0x70, 0x31, 0x8a, + 0xfb, 0xb5, 0xea, 0xb5, 0xd7, 0x8c, 0x3d, 0x26, 0x1c, 0x5f, 0x39, 0x9a, 0x3f, 0x2e, 0xc8, 0x57, + 0xed, 0x85, 0x8f, 0xf6, 0x0c, 0x37, 0xb4, 0xc3, 0x7d, 0x3e, 0x5d, 0xf5, 0x2c, 0x3a, 0x9c, 0x47, + 0x03, 0xad, 0xc2, 0xa5, 0x54, 0xf1, 0x8a, 0xed, 0x90, 0x60, 0xee, 0x2a, 0x1b, 0x36, 0x53, 0x8f, + 0xd4, 0x73, 0xe0, 0x38, 0xb7, 0x15, 0xba, 0x03, 0x97, 0xbb, 0xbe, 0x17, 0x12, 0x33, 0xbc, 0x4d, + 0x05, 0x02, 0x47, 0x0c, 0x30, 0x98, 0x9b, 0x63, 0x73, 0xc1, 0x1e, 0x80, 0x36, 0xf2, 0x2a, 0xe0, + 0xfc, 0x76, 0xe8, 0x73, 0x1a, 0x5c, 0x0b, 0x42, 0x9f, 0x18, 0x1d, 0xdb, 0x6d, 0xd7, 0x3d, 0xd7, + 0x25, 0x8c, 0x31, 0x35, 0xad, 0xd8, 0x63, 0xe1, 0xa1, 0x52, 0xa7, 0x88, 0x7e, 0x78, 0x50, 0xbb, + 0xd6, 0xea, 0x8b, 0x19, 0x1f, 0x41, 0x19, 0xbd, 0x05, 0xd0, 0x21, 0x1d, 0xcf, 0xdf, 0xa7, 0x1c, + 0x69, 0x6e, 0xbe, 0xbc, 0xfd, 0xd2, 0x5a, 0x84, 0x85, 0x6f, 0xff, 0xc4, 0xd3, 0x55, 0x0c, 0xc4, + 0x0a, 0x39, 0xfd, 0xa0, 0x02, 0x97, 0x73, 0x59, 0x3d, 0xdd, 0x01, 0xbc, 0xde, 0xa2, 0x8c, 0x01, + 0x2e, 0x5e, 0x7b, 0xd8, 0x0e, 0x58, 0x4b, 0x82, 0x70, 0xba, 0x2e, 0x15, 0xc4, 0xd8, 0x4e, 0x5d, + 0x69, 0xc5, 0xed, 0x2b, 0xb1, 0x20, 0xd6, 0x4c, 0xc1, 0x70, 0xa6, 0x36, 0xaa, 0xc3, 0xac, 0x28, + 0x6b, 0xd2, 0xbb, 0x4c, 0xb0, 0xe2, 0x13, 0x29, 0xe2, 0xd2, 0x5b, 0xc1, 0x6c, 0x33, 0x0d, 0xc4, + 0xd9, 0xfa, 0x74, 0x14, 0xf4, 0x87, 0xda, 0x8b, 0xe1, 0x78, 0x14, 0xeb, 0x49, 0x10, 0x4e, 0xd7, + 0x95, 0x97, 0xcd, 0x44, 0x17, 0x46, 0xe2, 0x51, 0xac, 0xa7, 0x60, 0x38, 0x53, 0x5b, 0xff, 0xcf, + 0xc3, 0xf0, 0xd8, 0x31, 0xc4, 0x23, 0xd4, 0xc9, 0x9f, 0xee, 0x93, 0x6f, 0xdc, 0xe3, 0x7d, 0x9e, + 0x6e, 0xc1, 0xe7, 0x39, 0x39, 0xbd, 0xe3, 0x7e, 0xce, 0xa0, 0xe8, 0x73, 0x9e, 0x9c, 0xe4, 0xf1, + 0x3f, 0x7f, 0x27, 0xff, 0xf3, 0x97, 0x9c, 0xd5, 0x23, 0x97, 0x4b, 0xb7, 0x60, 0xb9, 0x94, 0x9c, + 0xd5, 0x63, 0x2c, 0xaf, 0x3f, 0x1c, 0x86, 0xc7, 0x8f, 0x23, 0xaa, 0x95, 0x5c, 0x5f, 0x39, 0x2c, + 0xef, 0x4c, 0xd7, 0x57, 0x91, 0x53, 0xd8, 0x19, 0xae, 0xaf, 0x1c, 0x92, 0x67, 0xbd, 0xbe, 0x8a, + 0x66, 0xf5, 0xac, 0xd6, 0x57, 0xd1, 0xac, 0x1e, 0x63, 0x7d, 0xfd, 0x79, 0xfa, 0x7c, 0x88, 0xe4, + 0xc5, 0x26, 0x0c, 0x99, 0xdd, 0x5e, 0x49, 0x26, 0xc5, 0x6c, 0x83, 0xea, 0x1b, 0x77, 0x31, 0xc5, + 0x81, 0x30, 0x8c, 0xf2, 0xf5, 0x53, 0x92, 0x05, 0x31, 0xf7, 0x22, 0xbe, 0x24, 0xb1, 0xc0, 0x44, + 0xa7, 0x8a, 0x74, 0x77, 0x48, 0x87, 0xf8, 0x86, 0xd3, 0x0a, 0x3d, 0xdf, 0x68, 0x97, 0xe5, 0x36, + 0x5c, 0x71, 0x9c, 0xc2, 0x85, 0x33, 0xd8, 0xe9, 0x84, 0x74, 0x6d, 0xab, 0x24, 0x7f, 0x61, 0x13, + 0xb2, 0xd1, 0x6c, 0x60, 0x8a, 0x43, 0xff, 0x52, 0x15, 0x94, 0xd0, 0x97, 0xe8, 0xd3, 0x1a, 0xcc, + 0x9a, 0xe9, 0x00, 0x53, 0x83, 0x98, 0x81, 0x64, 0xa2, 0x55, 0xf1, 0x25, 0x9f, 0x29, 0xc6, 0x59, + 0xb2, 0xe8, 0x7b, 0x35, 0xae, 0xa9, 0x8a, 0x1e, 0x31, 0xc4, 0xb4, 0xde, 0x3c, 0xa5, 0xe7, 0xbe, + 0x58, 0xe5, 0x15, 0xbf, 0x2c, 0x25, 0x09, 0xa2, 0xcf, 0x6b, 0x70, 0xf9, 0x5e, 0x9e, 0x82, 0x5d, + 0x4c, 0xfe, 0x9d, 0xb2, 0x5d, 0x29, 0xd0, 0xd8, 0x73, 0x89, 0x33, 0xb7, 0x02, 0xce, 0xef, 0x48, + 0x34, 0x4b, 0x91, 0xce, 0x51, 0xec, 0xd3, 0xd2, 0xb3, 0x94, 0x52, 0x5e, 0xc6, 0xb3, 0x14, 0x01, + 0x70, 0x92, 0x20, 0xea, 0xc2, 0xf8, 0x3d, 0xa9, 0xe8, 0x15, 0xca, 0x9d, 0x7a, 0x59, 0xea, 0x8a, + 0xb6, 0x98, 0x9b, 0xb9, 0x44, 0x85, 0x38, 0x26, 0x82, 0x76, 0x60, 0xec, 0x1e, 0xe7, 0x15, 0x42, + 0x29, 0xb3, 0x38, 0xf0, 0x15, 0x96, 0xeb, 0x06, 0x44, 0x11, 0x96, 0xe8, 0x55, 0x1b, 0xd7, 0xea, + 0x11, 0xae, 0x17, 0x9f, 0xd3, 0xe0, 0xf2, 0x2e, 0xf1, 0x43, 0xdb, 0x4c, 0x3f, 0x6f, 0x8c, 0x97, + 0xbf, 0x66, 0xbf, 0x94, 0x87, 0x90, 0x2f, 0x93, 0x5c, 0x10, 0xce, 0xef, 0x02, 0xbd, 0x74, 0x73, + 0x2d, 0x75, 0x2b, 0x34, 0x42, 0xdb, 0xdc, 0xf4, 0xee, 0x11, 0x37, 0xce, 0xd0, 0xc4, 0xd4, 0x23, + 0x22, 0x94, 0xdd, 0x72, 0x71, 0x35, 0xdc, 0x0f, 0x87, 0xfe, 0x27, 0x1a, 0x64, 0x74, 0xad, 0xe8, + 0x47, 0x34, 0x98, 0xdc, 0x26, 0x46, 0xd8, 0xf3, 0xc9, 0x4d, 0x23, 0x8c, 0x3c, 0xea, 0x5f, 0x3a, + 0x0d, 0x15, 0xef, 0xc2, 0x8a, 0x82, 0x98, 0x3f, 0xd7, 0x47, 0x91, 0x6d, 0x55, 0x10, 0x4e, 0xf4, + 0x60, 0xfe, 0x45, 0x98, 0xcd, 0x34, 0x3c, 0xd1, 0xb3, 0xdb, 0xbf, 0xd1, 0x20, 0x2f, 0xa9, 0x18, + 0x7a, 0x0d, 0x46, 0x0c, 0xcb, 0x8a, 0xb2, 0x84, 0x3c, 0x57, 0xce, 0x72, 0xc4, 0x52, 0x03, 0x17, + 0xb0, 0x9f, 0x98, 0xa3, 0x45, 0x2b, 0x80, 0x8c, 0xc4, 0xfb, 0xf3, 0x5a, 0xec, 0x8e, 0xcb, 0x9e, + 0x87, 0x16, 0x33, 0x50, 0x9c, 0xd3, 0x42, 0xff, 0x41, 0x0d, 0x50, 0x36, 0x16, 0x32, 0xf2, 0xa1, + 0x2a, 0x96, 0xb2, 0xfc, 0x4a, 0x8d, 0x92, 0x0e, 0x1f, 0x09, 0xef, 0xa5, 0xd8, 0x0c, 0x49, 0x14, + 0x04, 0x38, 0xa2, 0xa3, 0xff, 0xa5, 0x06, 0x71, 0x26, 0x01, 0xf4, 0x01, 0x98, 0xb0, 0x48, 0x60, + 0xfa, 0x76, 0x37, 0x8c, 0x7d, 0x9d, 0x22, 0x9f, 0x89, 0x46, 0x0c, 0xc2, 0x6a, 0x3d, 0xa4, 0xc3, + 0x68, 0x68, 0x04, 0xf7, 0x9a, 0x0d, 0x71, 0xef, 0x63, 0xa7, 0xf4, 0x26, 0x2b, 0xc1, 0x02, 0x12, + 0x87, 0x44, 0x1b, 0x3a, 0x46, 0x48, 0x34, 0xb4, 0x7d, 0x0a, 0xf1, 0xdf, 0xd0, 0xd1, 0xb1, 0xdf, + 0xf4, 0x9f, 0xad, 0xc0, 0x05, 0x5a, 0x65, 0xcd, 0xb0, 0xdd, 0x90, 0xb8, 0xcc, 0xb2, 0xbf, 0xe4, + 0x24, 0xb4, 0x61, 0x2a, 0x4c, 0xb8, 0xbe, 0x9d, 0xdc, 0xef, 0x2b, 0xb2, 0x75, 0x49, 0x3a, 0xbc, + 0x25, 0xf1, 0xa2, 0xe7, 0xa4, 0x6b, 0x05, 0xbf, 0x21, 0x3f, 0x26, 0x97, 0x2a, 0xf3, 0x97, 0x78, + 0x20, 0xfc, 0x08, 0xa3, 0xf4, 0x13, 0x09, 0x2f, 0x8a, 0x67, 0x61, 0x4a, 0x98, 0x38, 0xf3, 0xd8, + 0x76, 0xe2, 0x86, 0xcc, 0x4e, 0x98, 0x15, 0x15, 0x80, 0x93, 0xf5, 0xf4, 0xdf, 0xab, 0x40, 0x32, + 0xc9, 0x45, 0xd9, 0x59, 0xca, 0x06, 0xf6, 0xab, 0x9c, 0x59, 0x60, 0xbf, 0xf7, 0xb1, 0x0c, 0x51, + 0x3c, 0x95, 0x20, 0x7f, 0x37, 0x56, 0xf3, 0x3a, 0xf1, 0x44, 0x80, 0x51, 0x8d, 0x78, 0x5a, 0x87, + 0x4f, 0x3c, 0xad, 0x1f, 0x10, 0xb6, 0x8f, 0x23, 0x89, 0xf0, 0x8a, 0xd2, 0xf6, 0x71, 0x36, 0xd1, + 0x50, 0x71, 0x04, 0xf9, 0x92, 0x06, 0x63, 0x22, 0x00, 0xf8, 0x31, 0x1c, 0x8d, 0xb6, 0x61, 0x84, + 0xdd, 0x4a, 0x06, 0x91, 0x06, 0x5b, 0x3b, 0x9e, 0x17, 0x26, 0xc2, 0xa0, 0x33, 0xcb, 0x7e, 0xf6, + 0x2f, 0xe6, 0xe8, 0x99, 0xf9, 0x9b, 0x6f, 0xee, 0xd8, 0x21, 0x31, 0x43, 0x19, 0x5c, 0x59, 0x9a, + 0xbf, 0x29, 0xe5, 0x38, 0x51, 0x4b, 0xff, 0x89, 0x61, 0xb8, 0x2e, 0x10, 0x67, 0x44, 0xa4, 0x88, + 0xc1, 0xed, 0xc3, 0x45, 0xf1, 0x6d, 0x1b, 0xbe, 0x61, 0x47, 0xef, 0xf1, 0xe5, 0x6e, 0xa7, 0x22, + 0x5d, 0x66, 0x06, 0x1d, 0xce, 0xa3, 0xc1, 0x43, 0x78, 0xb2, 0xe2, 0x5b, 0xc4, 0x70, 0xc2, 0x1d, + 0x49, 0xbb, 0x32, 0x48, 0x08, 0xcf, 0x2c, 0x3e, 0x9c, 0x4b, 0x85, 0xd9, 0x03, 0x08, 0x40, 0xdd, + 0x27, 0x86, 0x6a, 0x8c, 0x30, 0x80, 0x71, 0xfe, 0x5a, 0x2e, 0x46, 0x5c, 0x40, 0x89, 0xa9, 0xf9, + 0x8c, 0x3d, 0xa6, 0x35, 0xc0, 0x24, 0xf4, 0x6d, 0x16, 0xce, 0x3e, 0x52, 0x74, 0xaf, 0x25, 0x41, + 0x38, 0x5d, 0x17, 0x3d, 0x0f, 0xd3, 0xcc, 0xbe, 0x22, 0x0e, 0xe5, 0x35, 0x12, 0x47, 0x8b, 0x58, + 0x4f, 0x40, 0x70, 0xaa, 0xa6, 0xfe, 0x89, 0x0a, 0x4c, 0xaa, 0xcb, 0xee, 0x18, 0x5e, 0x47, 0x3d, + 0xe5, 0x30, 0x1c, 0xc0, 0x23, 0x46, 0xa5, 0x7a, 0x8c, 0xf3, 0x10, 0xbd, 0x02, 0xd3, 0x3d, 0xc6, + 0x41, 0x64, 0x38, 0x12, 0xb1, 0xfe, 0xbf, 0x89, 0x8e, 0xf2, 0x6e, 0x02, 0xf2, 0xe0, 0xa0, 0x36, + 0xaf, 0xa2, 0x4f, 0x42, 0x71, 0x0a, 0x8f, 0xfe, 0x99, 0x21, 0xb8, 0x98, 0xd3, 0x1b, 0xf6, 0x0e, + 0x4f, 0x52, 0x47, 0xf6, 0x20, 0xef, 0xf0, 0x99, 0xe3, 0x3f, 0x7a, 0x87, 0x4f, 0x43, 0x70, 0x86, + 0x2e, 0x7a, 0x09, 0x86, 0x4c, 0xdf, 0x16, 0x13, 0xfe, 0x6c, 0xa9, 0x0b, 0x27, 0x6e, 0x2e, 0x4d, + 0x08, 0x8a, 0x43, 0x75, 0xdc, 0xc4, 0x14, 0x21, 0x3d, 0x78, 0x54, 0x76, 0x21, 0xa5, 0x00, 0x76, + 0xf0, 0xa8, 0x5c, 0x25, 0xc0, 0xc9, 0x7a, 0xe8, 0x15, 0x98, 0x13, 0x37, 0x01, 0xe9, 0xc1, 0xec, + 0xb9, 0x41, 0x48, 0x77, 0x76, 0x28, 0x18, 0xf5, 0x23, 0x87, 0x07, 0xb5, 0xb9, 0xdb, 0x05, 0x75, + 0x70, 0x61, 0x6b, 0xfd, 0xcf, 0x86, 0x60, 0x42, 0x49, 0xbf, 0x80, 0xd6, 0x06, 0xd1, 0x72, 0xc4, + 0x23, 0x96, 0x9a, 0x8e, 0x35, 0x18, 0x6a, 0x77, 0x7b, 0x25, 0xd5, 0x1c, 0x11, 0xba, 0x9b, 0x14, + 0x5d, 0xbb, 0xdb, 0x43, 0x2f, 0x45, 0x8a, 0x93, 0x72, 0xaa, 0x8d, 0xc8, 0xdf, 0x24, 0xa5, 0x3c, + 0x91, 0x1b, 0x71, 0xb8, 0x70, 0x23, 0x76, 0x60, 0x2c, 0x10, 0x5a, 0x95, 0x91, 0xf2, 0x51, 0x77, + 0x94, 0x99, 0x16, 0x5a, 0x14, 0x7e, 0xdf, 0x93, 0x4a, 0x16, 0x49, 0x83, 0xca, 0x92, 0x3d, 0xe6, + 0xc5, 0xca, 0x2e, 0xb2, 0x55, 0x2e, 0x4b, 0xde, 0x65, 0x25, 0x58, 0x40, 0x32, 0x47, 0xd4, 0xd8, + 0xb1, 0x8e, 0xa8, 0xbf, 0x57, 0x01, 0x94, 0xed, 0x06, 0x7a, 0x0c, 0x46, 0x98, 0x17, 0xbc, 0xe0, + 0x45, 0x91, 0xe4, 0xcf, 0xfc, 0xa0, 0x31, 0x87, 0xa1, 0x96, 0x88, 0x21, 0x52, 0xee, 0x73, 0x32, + 0x43, 0x16, 0x41, 0x4f, 0x09, 0x38, 0x72, 0x3d, 0xe1, 0x32, 0x91, 0x77, 0xe6, 0xdf, 0x85, 0xb1, + 0x8e, 0xed, 0xb2, 0xb7, 0xbd, 0x72, 0xca, 0x26, 0xfe, 0xde, 0xce, 0x51, 0x60, 0x89, 0x4b, 0xff, + 0xc3, 0x0a, 0x5d, 0xfa, 0xb1, 0xc4, 0xbb, 0x0f, 0x60, 0xf4, 0x42, 0x8f, 0x33, 0x30, 0xb1, 0x03, + 0x9a, 0xe5, 0xbe, 0x72, 0x84, 0x74, 0x31, 0x42, 0xc8, 0x5f, 0xa5, 0xe2, 0xdf, 0x58, 0x21, 0x46, + 0x49, 0x87, 0x76, 0x87, 0xbc, 0x6c, 0xbb, 0x96, 0x77, 0x5f, 0x4c, 0xef, 0xa0, 0xa4, 0x37, 0x23, + 0x84, 0x9c, 0x74, 0xfc, 0x1b, 0x2b, 0xc4, 0x28, 0x6b, 0x61, 0x17, 0x67, 0x97, 0xe5, 0xc3, 0x11, + 0x7d, 0xf3, 0x1c, 0x47, 0x9e, 0xca, 0x55, 0xce, 0x5a, 0xea, 0x05, 0x75, 0x70, 0x61, 0x6b, 0xfd, + 0xe7, 0x34, 0xb8, 0x9c, 0x3b, 0x15, 0xe8, 0x26, 0xcc, 0xc6, 0xb6, 0x4f, 0x2a, 0xb3, 0xaf, 0xc6, + 0x49, 0x9e, 0x6e, 0xa7, 0x2b, 0xe0, 0x6c, 0x1b, 0x9e, 0x49, 0x3c, 0x73, 0x98, 0x08, 0xc3, 0x29, + 0x55, 0x34, 0x52, 0xc1, 0x38, 0xaf, 0x8d, 0xfe, 0x1d, 0x89, 0xce, 0xc6, 0x93, 0x45, 0x77, 0xc6, + 0x16, 0x69, 0x47, 0x2e, 0x6b, 0xd1, 0xce, 0x58, 0xa2, 0x85, 0x98, 0xc3, 0xd0, 0xa3, 0xaa, 0x23, + 0x68, 0xc4, 0xb7, 0xa4, 0x33, 0xa8, 0xfe, 0x5d, 0x70, 0xb5, 0xe0, 0xb1, 0x12, 0x35, 0x60, 0x32, + 0xb8, 0x6f, 0x74, 0x97, 0xc8, 0x8e, 0xb1, 0x6b, 0x8b, 0xc0, 0x02, 0xdc, 0xa6, 0x6d, 0xb2, 0xa5, + 0x94, 0x3f, 0x48, 0xfd, 0xc6, 0x89, 0x56, 0x7a, 0x08, 0x20, 0x6c, 0x1f, 0x6d, 0xb7, 0x8d, 0xb6, + 0xa1, 0x6a, 0x88, 0x44, 0xd6, 0x62, 0x1d, 0x7f, 0x6b, 0x29, 0x25, 0x80, 0xc0, 0xc1, 0xad, 0xc3, + 0xe5, 0x2f, 0x1c, 0xe1, 0xd6, 0xff, 0xa9, 0x06, 0x57, 0xf2, 0x5d, 0xc9, 0x8f, 0x21, 0xda, 0x74, + 0x60, 0xc2, 0x8f, 0x9b, 0x89, 0x45, 0xff, 0x2d, 0x6a, 0x34, 0x56, 0x25, 0xfc, 0x18, 0x15, 0xfb, + 0xea, 0xbe, 0x17, 0xc8, 0x2f, 0x9f, 0x0e, 0xd0, 0x1a, 0x5d, 0xb9, 0x94, 0x9e, 0x60, 0x15, 0x3f, + 0x0b, 0x96, 0x4c, 0xa9, 0x07, 0x5d, 0xc3, 0x24, 0xd6, 0x39, 0x67, 0x06, 0x3b, 0x85, 0x08, 0xa5, + 0xf9, 0x7d, 0x3f, 0xdb, 0x60, 0xc9, 0x05, 0x34, 0x8f, 0x0e, 0x96, 0x9c, 0xdf, 0xf0, 0x1d, 0x12, + 0xc5, 0x33, 0xbf, 0xf3, 0x05, 0x7e, 0x65, 0x9f, 0x1a, 0x2d, 0x1a, 0xed, 0x09, 0xd3, 0x8b, 0xed, + 0x9e, 0x61, 0x7a, 0xb1, 0xe9, 0xaf, 0xa7, 0x16, 0xcb, 0x49, 0x2d, 0xa6, 0xe4, 0xfb, 0x1a, 0x39, + 0xc3, 0x7c, 0x5f, 0xa9, 0xac, 0x5a, 0xa3, 0xe7, 0x93, 0x55, 0x0b, 0xbd, 0x01, 0xa3, 0x5d, 0xc3, + 0x27, 0xae, 0x7c, 0x9a, 0x68, 0x0e, 0x9a, 0xb2, 0x2f, 0x66, 0xb6, 0xd1, 0xce, 0xdf, 0x60, 0x04, + 0xb0, 0x20, 0xa4, 0xff, 0x85, 0x06, 0x8f, 0xf4, 0x63, 0x19, 0xec, 0x92, 0x67, 0xa6, 0xb6, 0xc8, + 0x20, 0x97, 0xbc, 0x0c, 0x27, 0x8c, 0x2e, 0x79, 0x69, 0x08, 0xce, 0xd0, 0x2d, 0x48, 0x12, 0x5b, + 0x29, 0x93, 0x24, 0x56, 0xff, 0xe5, 0x0a, 0xc0, 0x3a, 0x09, 0xef, 0x7b, 0xfe, 0x3d, 0x7a, 0xfe, + 0x3e, 0x92, 0x50, 0x63, 0x55, 0xbf, 0x7a, 0xb1, 0x72, 0x1e, 0x81, 0xe1, 0xae, 0x67, 0x05, 0x42, + 0xb6, 0x66, 0x1d, 0x61, 0x36, 0xa7, 0xac, 0x14, 0xd5, 0x60, 0x84, 0x3d, 0x7c, 0x8b, 0x6b, 0x0f, + 0x53, 0x82, 0xad, 0xd3, 0x02, 0xcc, 0xcb, 0x79, 0xee, 0x5b, 0xe6, 0xce, 0x17, 0x08, 0xad, 0x9e, + 0xc8, 0x7d, 0xcb, 0xcb, 0x70, 0x04, 0x45, 0xcf, 0x03, 0xd8, 0xdd, 0x15, 0xa3, 0x63, 0x3b, 0xb6, + 0x58, 0xe3, 0xe3, 0x4c, 0x3b, 0x03, 0xcd, 0x0d, 0x59, 0xfa, 0xe0, 0xa0, 0x56, 0x15, 0xbf, 0xf6, + 0xb1, 0x52, 0x5b, 0xff, 0xab, 0x21, 0x98, 0x5c, 0x6f, 0xdb, 0xee, 0x9e, 0x8c, 0x12, 0x10, 0x3d, + 0x60, 0x68, 0x67, 0xf3, 0x80, 0xf1, 0x0a, 0xcc, 0x39, 0x9e, 0x61, 0x2d, 0x19, 0x0e, 0x15, 0xf5, + 0xfc, 0x16, 0x97, 0x11, 0x0c, 0xb7, 0x2d, 0xc2, 0x8e, 0x88, 0xdb, 0xf4, 0x6a, 0x41, 0x1d, 0x5c, + 0xd8, 0x1a, 0x85, 0x30, 0x6a, 0xca, 0x14, 0x17, 0xa5, 0x3d, 0xdf, 0xd5, 0xb9, 0x58, 0x50, 0x9d, + 0x40, 0xa3, 0x7d, 0x27, 0xbe, 0xb6, 0xa0, 0x85, 0x3e, 0xa9, 0xc1, 0x65, 0xb2, 0xc7, 0x9d, 0xa0, + 0x37, 0x7d, 0x63, 0x7b, 0xdb, 0x36, 0x85, 0x27, 0x00, 0xff, 0xb0, 0xab, 0x87, 0x07, 0xb5, 0xcb, + 0xcb, 0x79, 0x15, 0x1e, 0x1c, 0xd4, 0x6e, 0xe4, 0xfa, 0xa4, 0xb3, 0xcf, 0x9a, 0xdb, 0x04, 0xe7, + 0x93, 0x9a, 0x7f, 0x0e, 0x26, 0x4e, 0xe0, 0x3f, 0x96, 0xf0, 0x3c, 0xff, 0x95, 0x0a, 0x4c, 0xd2, + 0x75, 0xb7, 0xea, 0x99, 0x86, 0xd3, 0x58, 0x6f, 0xa1, 0x27, 0xd3, 0xf1, 0x62, 0x22, 0xee, 0x9a, + 0x89, 0x19, 0xb3, 0x0a, 0x97, 0xb6, 0x3d, 0xdf, 0x24, 0x9b, 0xf5, 0x8d, 0x4d, 0x4f, 0xbc, 0xe7, + 0x37, 0xd6, 0x5b, 0xe2, 0x0a, 0xc0, 0x34, 0x94, 0x2b, 0x39, 0x70, 0x9c, 0xdb, 0x0a, 0xdd, 0x81, + 0xcb, 0x71, 0xf9, 0xdd, 0x2e, 0x37, 0x64, 0xa4, 0xe8, 0x86, 0x62, 0x43, 0xcc, 0x95, 0xbc, 0x0a, + 0x38, 0xbf, 0x1d, 0x32, 0xe0, 0x61, 0x11, 0x8e, 0x6a, 0xc5, 0xf3, 0xef, 0x1b, 0xbe, 0x95, 0x44, + 0x3b, 0x1c, 0xbf, 0x77, 0x36, 0x8a, 0xab, 0xe1, 0x7e, 0x38, 0xf4, 0x9f, 0x1c, 0x05, 0xc5, 0x53, + 0xf9, 0x04, 0x12, 0xc7, 0xcf, 0x68, 0x70, 0xc9, 0x74, 0x6c, 0xe2, 0x86, 0x29, 0xb7, 0x54, 0xce, + 0x8e, 0xee, 0x96, 0x72, 0xa1, 0xee, 0x12, 0xb7, 0xd9, 0x10, 0x76, 0x9f, 0xf5, 0x1c, 0xe4, 0xc2, + 0x36, 0x36, 0x07, 0x82, 0x73, 0x3b, 0xc3, 0xc6, 0xc3, 0xca, 0x9b, 0x0d, 0x35, 0x8e, 0x4e, 0x5d, + 0x94, 0xe1, 0x08, 0x8a, 0x9e, 0x86, 0x89, 0xb6, 0xef, 0xf5, 0xba, 0x41, 0x9d, 0xb9, 0x77, 0xf0, + 0xb5, 0xcf, 0x94, 0x0e, 0x37, 0xe3, 0x62, 0xac, 0xd6, 0x41, 0xef, 0x87, 0x49, 0xfe, 0x73, 0xc3, + 0x27, 0xdb, 0xf6, 0x9e, 0x60, 0x72, 0x4c, 0x85, 0x72, 0x53, 0x29, 0xc7, 0x89, 0x5a, 0x2c, 0x14, + 0x46, 0x10, 0xf4, 0x88, 0x7f, 0x17, 0xaf, 0x8a, 0x24, 0x48, 0x3c, 0x14, 0x86, 0x2c, 0xc4, 0x31, + 0x1c, 0xfd, 0x98, 0x06, 0xd3, 0x3e, 0x79, 0xa3, 0x67, 0xfb, 0xf4, 0x48, 0x34, 0xec, 0x4e, 0x20, + 0xdc, 0xc5, 0xf1, 0x60, 0x2e, 0xea, 0x0b, 0x38, 0x81, 0x94, 0x73, 0x88, 0xe8, 0x4d, 0x28, 0x09, + 0xc4, 0xa9, 0x1e, 0xd0, 0xa9, 0x0a, 0xec, 0xb6, 0x6b, 0xbb, 0xed, 0x45, 0xa7, 0x1d, 0xcc, 0x55, + 0x19, 0xd3, 0xe3, 0xfa, 0x99, 0xb8, 0x18, 0xab, 0x75, 0xd0, 0xb3, 0x30, 0xd5, 0x0b, 0xe8, 0xbe, + 0xef, 0x10, 0x3e, 0xbf, 0xe3, 0xf1, 0xa3, 0xd9, 0x5d, 0x15, 0x80, 0x93, 0xf5, 0xd0, 0xf3, 0x30, + 0x2d, 0x0b, 0xc4, 0x2c, 0x03, 0x0f, 0x41, 0xcb, 0x74, 0xc9, 0x09, 0x08, 0x4e, 0xd5, 0x9c, 0x5f, + 0x84, 0x8b, 0x39, 0xc3, 0x3c, 0x11, 0x73, 0xf9, 0x6b, 0x0d, 0x2e, 0xf3, 0x53, 0x5c, 0xa6, 0x4f, + 0x92, 0xa1, 0x56, 0xf3, 0xa3, 0x96, 0x6a, 0x67, 0x1a, 0xb5, 0xf4, 0xab, 0x10, 0x9d, 0x55, 0xff, + 0xc7, 0x15, 0x78, 0xf7, 0x91, 0xfb, 0x12, 0xfd, 0x43, 0x0d, 0x26, 0xc8, 0x5e, 0xe8, 0x1b, 0x91, + 0x0f, 0x1c, 0x5d, 0xa4, 0xdb, 0x67, 0xc2, 0x04, 0x16, 0x96, 0x63, 0x42, 0x7c, 0xe1, 0x46, 0xf2, + 0xac, 0x02, 0xc1, 0x6a, 0x7f, 0x90, 0x0e, 0xa3, 0x3c, 0x44, 0xb3, 0xfa, 0xba, 0xce, 0x43, 0x7e, + 0x60, 0x01, 0x99, 0xff, 0x30, 0xcc, 0xa4, 0x31, 0x9f, 0x68, 0xad, 0xfc, 0x52, 0x05, 0xc6, 0x36, + 0x7c, 0x8f, 0x5e, 0xe0, 0xcf, 0x41, 0x29, 0x60, 0x24, 0x94, 0x02, 0xa5, 0xae, 0x3c, 0xa2, 0xb3, + 0x85, 0x5a, 0x00, 0x3b, 0xa5, 0x05, 0x58, 0x1c, 0x84, 0x48, 0xff, 0x6b, 0xff, 0x6f, 0x6b, 0x30, + 0x21, 0x6a, 0x9e, 0xc3, 0x3d, 0xff, 0xbb, 0x93, 0xf7, 0xfc, 0x0f, 0x0d, 0x30, 0xae, 0x82, 0x8b, + 0xfd, 0xe7, 0x34, 0x98, 0x12, 0x35, 0xd6, 0x48, 0x67, 0x8b, 0xf8, 0x68, 0x05, 0xc6, 0x82, 0x1e, + 0xfb, 0x90, 0x62, 0x40, 0x0f, 0xab, 0xca, 0x2a, 0x7f, 0xcb, 0x30, 0x69, 0xf7, 0x5b, 0xbc, 0x8a, + 0x92, 0x88, 0x88, 0x17, 0x60, 0xd9, 0x18, 0x5d, 0x87, 0x61, 0xdf, 0x73, 0x32, 0x91, 0x04, 0xb1, + 0xe7, 0x10, 0xcc, 0x20, 0x54, 0x30, 0xa7, 0x7f, 0xe5, 0xfb, 0x10, 0x13, 0xcc, 0x29, 0x38, 0xc0, + 0xbc, 0x5c, 0xff, 0xc2, 0x48, 0x34, 0xd9, 0xec, 0x2e, 0x73, 0x0b, 0xc6, 0x4d, 0x9f, 0x18, 0x21, + 0xb1, 0x96, 0xf6, 0x8f, 0xd3, 0x39, 0x76, 0x5c, 0xd5, 0x65, 0x0b, 0x1c, 0x37, 0xa6, 0x27, 0x83, + 0x6a, 0xd0, 0x50, 0x89, 0x0f, 0xd1, 0x42, 0x63, 0x86, 0x6f, 0x85, 0x11, 0xef, 0xbe, 0x1b, 0xd9, + 0x45, 0xf6, 0x25, 0xcc, 0x86, 0x72, 0x87, 0xd6, 0xc6, 0xbc, 0x91, 0x1a, 0x49, 0x73, 0xb8, 0x4f, + 0x24, 0x4d, 0x07, 0xc6, 0x3a, 0xec, 0x33, 0x0c, 0x94, 0x97, 0x26, 0xf1, 0x41, 0xd5, 0xcc, 0x85, + 0x0c, 0x33, 0x96, 0x24, 0xe8, 0x09, 0xef, 0xca, 0x8b, 0xac, 0x7a, 0xc2, 0x47, 0xb7, 0x5b, 0x1c, + 0xc3, 0xd1, 0x7e, 0x32, 0x44, 0xeb, 0x58, 0x79, 0xd5, 0x8d, 0xe8, 0x9e, 0x12, 0x95, 0x95, 0x4f, + 0x7d, 0x51, 0x98, 0x56, 0xf4, 0x8f, 0x34, 0xb8, 0x6a, 0xe5, 0x07, 0x53, 0x67, 0x87, 0x7a, 0x49, + 0xc7, 0x9a, 0x82, 0xf8, 0xec, 0x4b, 0x35, 0x31, 0x61, 0x45, 0x01, 0xdc, 0x71, 0x51, 0x67, 0xf4, + 0x1f, 0x1a, 0x8e, 0x76, 0x93, 0xd0, 0x05, 0xe4, 0x5f, 0xbf, 0xb5, 0x32, 0xd7, 0x6f, 0xf4, 0xcd, + 0x32, 0x68, 0x7a, 0x25, 0x91, 0x0e, 0x34, 0x0a, 0x9a, 0x3e, 0x29, 0x48, 0x27, 0x02, 0xa5, 0xf7, + 0xe0, 0x62, 0x10, 0x1a, 0x0e, 0x69, 0xd9, 0x42, 0xdf, 0x1f, 0x84, 0x46, 0xa7, 0x5b, 0x22, 0x6a, + 0x39, 0x77, 0xb4, 0xcb, 0xa2, 0xc2, 0x79, 0xf8, 0xd1, 0xf7, 0x69, 0x30, 0xc7, 0xca, 0x17, 0x7b, + 0xa1, 0xc7, 0xf3, 0x8b, 0xc4, 0xc4, 0x4f, 0x6e, 0xde, 0xc5, 0x6e, 0xaa, 0xad, 0x02, 0x7c, 0xb8, + 0x90, 0x12, 0x7a, 0x0b, 0x2e, 0x53, 0x51, 0x61, 0xd1, 0x0c, 0xed, 0x5d, 0x3b, 0xdc, 0x8f, 0xbb, + 0x70, 0xf2, 0x50, 0xe5, 0xec, 0x56, 0xb4, 0x9a, 0x87, 0x0c, 0xe7, 0xd3, 0xd0, 0xff, 0x5c, 0x03, + 0x94, 0x5d, 0xeb, 0xc8, 0x81, 0xaa, 0x25, 0x3d, 0xdf, 0xb4, 0x53, 0x09, 0x74, 0x1c, 0x1d, 0x21, + 0x91, 0xc3, 0x5c, 0x44, 0x01, 0x79, 0x30, 0x7e, 0x7f, 0xc7, 0x0e, 0x89, 0x63, 0x07, 0xe1, 0x29, + 0xc5, 0x55, 0x8e, 0x82, 0x8c, 0xbe, 0x2c, 0x11, 0xe3, 0x98, 0x86, 0xfe, 0xc3, 0xc3, 0x50, 0x8d, + 0x12, 0x65, 0x1c, 0x6d, 0xe9, 0xd4, 0x03, 0x64, 0x2a, 0xc9, 0x46, 0x07, 0x51, 0x15, 0x31, 0x69, + 0xb1, 0x9e, 0x41, 0x86, 0x73, 0x08, 0xa0, 0xb7, 0xe0, 0x92, 0xed, 0x6e, 0xfb, 0x46, 0x10, 0xfa, + 0x3d, 0xf6, 0x62, 0x3c, 0x48, 0xce, 0x4e, 0x76, 0xd9, 0x6b, 0xe6, 0xa0, 0xc3, 0xb9, 0x44, 0x10, + 0x81, 0x31, 0x9e, 0x0f, 0x48, 0x2a, 0x82, 0x4b, 0xa9, 0x64, 0x79, 0x9e, 0xa1, 0x98, 0xbd, 0xf3, + 0xdf, 0x01, 0x96, 0xb8, 0x79, 0x38, 0x2a, 0xfe, 0xbf, 0xd4, 0x91, 0x8b, 0x75, 0x5f, 0x2f, 0x4f, + 0x2f, 0x56, 0xb7, 0xf3, 0x70, 0x54, 0xc9, 0x42, 0x9c, 0x26, 0xa8, 0xff, 0xa6, 0x06, 0x23, 0x3c, + 0x86, 0xc3, 0xd9, 0x8b, 0x9a, 0xdf, 0x95, 0x10, 0x35, 0x4b, 0xa5, 0x1d, 0x64, 0x5d, 0x2d, 0x4c, + 0x88, 0xf7, 0x25, 0x0d, 0xc6, 0x59, 0x8d, 0x73, 0x90, 0xfd, 0x5e, 0x4b, 0xca, 0x7e, 0xcf, 0x95, + 0x1e, 0x4d, 0x81, 0xe4, 0xf7, 0x9b, 0x43, 0x62, 0x2c, 0x4c, 0xb4, 0x6a, 0xc2, 0x45, 0xe1, 0x13, + 0xb2, 0x6a, 0x6f, 0x13, 0xba, 0xc4, 0x1b, 0xc6, 0x3e, 0x37, 0x93, 0x18, 0x11, 0x4e, 0xc3, 0x59, + 0x30, 0xce, 0x6b, 0x83, 0x7e, 0x45, 0xa3, 0x42, 0x4c, 0xe8, 0xdb, 0xe6, 0x40, 0xef, 0x53, 0x51, + 0xdf, 0x16, 0xd6, 0x38, 0x32, 0x7e, 0x85, 0xba, 0x1b, 0x4b, 0x33, 0xac, 0xf4, 0xc1, 0x41, 0xad, + 0x96, 0xa3, 0xdb, 0x8b, 0x33, 0x4e, 0x05, 0xe1, 0x27, 0xff, 0xa8, 0x6f, 0x15, 0xf6, 0x58, 0x2b, + 0x7b, 0x8c, 0x6e, 0xc1, 0x48, 0x60, 0x7a, 0x5d, 0x72, 0x92, 0xbc, 0x99, 0xd1, 0x04, 0xb7, 0x68, + 0x4b, 0xcc, 0x11, 0xcc, 0xbf, 0x0e, 0x93, 0x6a, 0xcf, 0x73, 0xae, 0x68, 0x0d, 0xf5, 0x8a, 0x76, + 0x62, 0x7b, 0x0f, 0xf5, 0x4a, 0xf7, 0xab, 0x15, 0x18, 0xe5, 0x4f, 0x32, 0xc7, 0x78, 0x92, 0xb6, + 0x65, 0x6a, 0x9f, 0x4a, 0x79, 0xbb, 0x73, 0x35, 0x8a, 0xf3, 0xab, 0x9e, 0xab, 0xcc, 0x81, 0x9a, + 0xdd, 0x07, 0xb9, 0x51, 0x6c, 0xef, 0xa1, 0xf2, 0xb9, 0xfd, 0xf8, 0xc0, 0xce, 0x3a, 0x9a, 0xf7, + 0xef, 0x68, 0x30, 0x99, 0x08, 0x96, 0xde, 0x81, 0x21, 0x3f, 0xca, 0xfa, 0x5a, 0xf6, 0xc5, 0x5e, + 0x5a, 0x16, 0x3f, 0xdc, 0xa7, 0x12, 0xa6, 0x74, 0xa2, 0xb8, 0xea, 0x95, 0x53, 0x8a, 0xab, 0xae, + 0x7f, 0x56, 0x83, 0x2b, 0x72, 0x40, 0xc9, 0xa8, 0x81, 0xe8, 0x09, 0xa8, 0x1a, 0x5d, 0x9b, 0xe9, + 0xfe, 0x54, 0xed, 0xe9, 0xe2, 0x46, 0x93, 0x95, 0xe1, 0x08, 0x9a, 0xc8, 0x55, 0x54, 0x39, 0x32, + 0x57, 0xd1, 0x7b, 0x94, 0xec, 0x4b, 0x23, 0xb1, 0x9c, 0x10, 0x11, 0xe6, 0xb6, 0x50, 0xfa, 0xb7, + 0xc0, 0x78, 0xab, 0x75, 0x6b, 0xd1, 0x34, 0x49, 0x10, 0x9c, 0x40, 0x0b, 0xae, 0x7f, 0x6a, 0x08, + 0xa6, 0x44, 0xf8, 0x53, 0xdb, 0xb5, 0x6c, 0xb7, 0x7d, 0x0e, 0x67, 0xca, 0x26, 0x8c, 0x73, 0xb5, + 0xcb, 0x11, 0x19, 0x7a, 0x5b, 0xb2, 0x52, 0x3a, 0xc9, 0x40, 0x04, 0xc0, 0x31, 0x22, 0x74, 0x1b, + 0x46, 0xdf, 0xa0, 0xfc, 0x4d, 0xee, 0x8b, 0x63, 0xb1, 0x99, 0x68, 0xd1, 0x33, 0xd6, 0x18, 0x60, + 0x81, 0x02, 0x05, 0xcc, 0xf4, 0x9d, 0x09, 0x5c, 0x83, 0x84, 0x35, 0x4a, 0xcc, 0x6c, 0x94, 0x7b, + 0x6d, 0x52, 0x58, 0xd0, 0xb3, 0x5f, 0x38, 0x22, 0xc4, 0x32, 0xa4, 0x24, 0x5a, 0xbc, 0x43, 0x32, + 0xa4, 0x24, 0xfa, 0x5c, 0x70, 0x34, 0x3e, 0x07, 0x97, 0x73, 0x27, 0xe3, 0x68, 0x71, 0x56, 0xff, + 0xf9, 0x0a, 0x0c, 0xb7, 0x08, 0xb1, 0xce, 0x61, 0x65, 0xbe, 0x96, 0x90, 0x76, 0xbe, 0xb5, 0x74, + 0x8e, 0x96, 0x22, 0xad, 0xda, 0x76, 0x4a, 0xab, 0xf6, 0xe1, 0xd2, 0x14, 0xfa, 0xab, 0xd4, 0x7e, + 0xaa, 0x02, 0x40, 0xab, 0x2d, 0x19, 0xe6, 0x3d, 0xce, 0x71, 0xa2, 0xd5, 0x9c, 0xca, 0x8e, 0x96, + 0x5d, 0x86, 0xe7, 0xf9, 0xca, 0xac, 0xc3, 0x28, 0x37, 0x76, 0x10, 0x0f, 0x34, 0x4c, 0x35, 0xcb, + 0xcf, 0x26, 0x2c, 0x20, 0x49, 0x6e, 0x31, 0x7c, 0x4a, 0xdc, 0x42, 0xdf, 0x03, 0x96, 0xe7, 0xbb, + 0xb1, 0xde, 0x42, 0x1d, 0x65, 0x76, 0x2a, 0xe5, 0x65, 0x79, 0x81, 0xee, 0xc8, 0x5d, 0xfe, 0x29, + 0x0d, 0x2e, 0xa4, 0xea, 0x1e, 0xe3, 0x4e, 0x77, 0x26, 0x3c, 0x53, 0xff, 0x0d, 0x0d, 0xaa, 0xb4, + 0x2f, 0xe7, 0xc0, 0x68, 0xfe, 0x76, 0x92, 0xd1, 0x7c, 0xb0, 0xec, 0x14, 0x17, 0xf0, 0x97, 0x3f, + 0xad, 0x00, 0x4b, 0x86, 0x24, 0x6c, 0x29, 0x14, 0x13, 0x05, 0xad, 0xc0, 0x44, 0xe1, 0xba, 0xb0, + 0x70, 0x48, 0x29, 0x53, 0x15, 0x2b, 0x87, 0xf7, 0x29, 0x46, 0x0c, 0x43, 0xc9, 0x6d, 0x93, 0x63, + 0xc8, 0xf0, 0x26, 0x4c, 0x05, 0x3b, 0x9e, 0x17, 0x46, 0x21, 0x78, 0x86, 0xcb, 0x2b, 0xce, 0x99, + 0x9f, 0x91, 0x1c, 0x0a, 0x7f, 0x29, 0x6b, 0xa9, 0xb8, 0x71, 0x92, 0x14, 0x5a, 0x00, 0xd8, 0x72, + 0x3c, 0xf3, 0x5e, 0xbd, 0xd9, 0xc0, 0xd2, 0xaf, 0x84, 0x99, 0x6e, 0x2d, 0x45, 0xa5, 0x58, 0xa9, + 0x31, 0x90, 0xd1, 0xc5, 0x1f, 0x6b, 0x7c, 0xa6, 0x4f, 0xb0, 0x78, 0xcf, 0x91, 0xa3, 0xbc, 0x37, + 0xc5, 0x51, 0x22, 0x0e, 0x99, 0xe2, 0x2a, 0x35, 0x29, 0xb0, 0x0f, 0xc7, 0x8a, 0xf2, 0x44, 0x12, + 0xcd, 0x5f, 0x12, 0xc3, 0x8c, 0xf2, 0x69, 0x75, 0x61, 0xca, 0x51, 0xd3, 0x3f, 0x8a, 0x3d, 0x52, + 0x2a, 0x73, 0x64, 0x64, 0xe1, 0x96, 0x28, 0xc6, 0x49, 0x02, 0xe8, 0x59, 0x98, 0x92, 0xa3, 0xe3, + 0x16, 0x60, 0x95, 0xd8, 0xe9, 0x63, 0x43, 0x05, 0xe0, 0x64, 0x3d, 0xfd, 0xed, 0x0a, 0x3c, 0xca, + 0xfb, 0xce, 0x34, 0x06, 0x0d, 0xd2, 0x25, 0xae, 0x45, 0x5c, 0x73, 0x9f, 0xc9, 0xac, 0x96, 0xd7, + 0x46, 0x6f, 0xc1, 0xe8, 0x7d, 0x42, 0xac, 0x48, 0xf5, 0xfe, 0x72, 0xf9, 0x74, 0x64, 0x05, 0x24, + 0x5e, 0x66, 0xe8, 0x39, 0x47, 0xe7, 0xff, 0x63, 0x41, 0x92, 0x12, 0xef, 0xfa, 0xde, 0x56, 0x24, + 0x5a, 0x9d, 0x3e, 0xf1, 0x0d, 0x86, 0x9e, 0x13, 0xe7, 0xff, 0x63, 0x41, 0x52, 0xdf, 0x80, 0xc7, + 0x8e, 0xd1, 0xf4, 0x24, 0x22, 0xf4, 0x51, 0x18, 0xf9, 0xe8, 0x4f, 0x82, 0xf1, 0x0f, 0x34, 0x78, + 0x5c, 0x41, 0xb9, 0xbc, 0x47, 0xa5, 0xfa, 0xba, 0xd1, 0x35, 0x4c, 0x7a, 0x47, 0x65, 0x61, 0x45, + 0x4e, 0x94, 0x1e, 0xe9, 0x53, 0x1a, 0x8c, 0x71, 0x8b, 0x1f, 0xc9, 0x7e, 0x5f, 0x1b, 0x70, 0xca, + 0x0b, 0xbb, 0x24, 0xe3, 0xee, 0xcb, 0xb1, 0xf1, 0xdf, 0x01, 0x96, 0xf4, 0xf5, 0x7f, 0x3b, 0x02, + 0xdf, 0x70, 0x7c, 0x44, 0xe8, 0x8f, 0xb5, 0x6c, 0x36, 0xfb, 0xce, 0xd9, 0x76, 0x3e, 0xd2, 0x62, + 0x88, 0x8b, 0xf1, 0xcb, 0x99, 0xdc, 0x66, 0xa7, 0xa4, 0x20, 0x51, 0x52, 0xe7, 0xff, 0x33, 0x0d, + 0x26, 0xe9, 0xb1, 0xd4, 0x8a, 0xd3, 0xd2, 0xd2, 0x91, 0x76, 0xcf, 0x78, 0xa4, 0xeb, 0x0a, 0xc9, + 0x54, 0xfc, 0x01, 0x15, 0x84, 0x13, 0x7d, 0x43, 0x77, 0x93, 0xcf, 0x56, 0xfc, 0xba, 0x75, 0x2d, + 0x4f, 0x1a, 0x39, 0x49, 0xe6, 0xc0, 0x79, 0x07, 0xa6, 0x93, 0x33, 0x7f, 0x96, 0xea, 0x9d, 0xf9, + 0x17, 0x61, 0x36, 0x33, 0xfa, 0x13, 0x29, 0x37, 0xfe, 0xee, 0x30, 0xd4, 0x94, 0xa9, 0x4e, 0xd8, + 0xfc, 0x49, 0x99, 0xe0, 0x27, 0x34, 0x98, 0x30, 0x5c, 0x57, 0xd8, 0x8d, 0xc8, 0xf5, 0x6b, 0x0d, + 0xf8, 0x55, 0xf3, 0x48, 0x2d, 0x2c, 0xc6, 0x64, 0x52, 0x86, 0x11, 0x0a, 0x04, 0xab, 0xbd, 0xe9, + 0x63, 0xfd, 0x57, 0x39, 0x37, 0xeb, 0x3f, 0xf4, 0x3d, 0xf2, 0x20, 0xe6, 0xcb, 0xe8, 0x95, 0x33, + 0x98, 0x1b, 0x76, 0xae, 0xe7, 0x6b, 0xd3, 0xe6, 0x3f, 0x0c, 0x33, 0xe9, 0x99, 0x3b, 0xd1, 0x2a, + 0xf8, 0xf9, 0xa1, 0x04, 0xab, 0x2e, 0x24, 0x7f, 0x0c, 0x1d, 0xe2, 0xe7, 0x53, 0x8b, 0x85, 0xb3, + 0x00, 0xfb, 0xac, 0x26, 0xe4, 0x74, 0x57, 0xcc, 0xd0, 0xf9, 0xd9, 0x8b, 0x0e, 0xfa, 0xc9, 0x96, + 0xe0, 0xb2, 0x32, 0x3f, 0x4a, 0xa6, 0xd6, 0x27, 0x61, 0x6c, 0xd7, 0x0e, 0x6c, 0x19, 0xf0, 0x4d, + 0x39, 0xa1, 0x5f, 0xe2, 0xc5, 0x58, 0xc2, 0xf5, 0xd5, 0xc4, 0xde, 0xdf, 0xf4, 0xba, 0x9e, 0xe3, + 0xb5, 0xf7, 0x17, 0xef, 0x1b, 0x3e, 0xc1, 0x5e, 0x2f, 0x14, 0xd8, 0x8e, 0x7b, 0xde, 0xaf, 0xc1, + 0x75, 0x05, 0x5b, 0x6e, 0x58, 0x9c, 0x93, 0xa0, 0xfb, 0xed, 0x31, 0x29, 0xba, 0x8a, 0xb8, 0x01, + 0xbf, 0xa8, 0xc1, 0x43, 0xa4, 0xe8, 0x28, 0x10, 0x72, 0xec, 0x2b, 0x67, 0x75, 0xd4, 0x88, 0x10, + 0xdc, 0x45, 0x60, 0x5c, 0xdc, 0x33, 0xb4, 0x9f, 0xc8, 0x57, 0x5c, 0x19, 0x44, 0x0f, 0x97, 0xf3, + 0xbd, 0xfb, 0x65, 0x2b, 0x46, 0x3f, 0xad, 0xc1, 0x25, 0x27, 0x67, 0xeb, 0x08, 0x91, 0xb5, 0x75, + 0x06, 0xbb, 0x92, 0xbf, 0x79, 0xe6, 0x41, 0x70, 0x6e, 0x57, 0xd0, 0xcf, 0x16, 0xc6, 0x6b, 0xe2, + 0x4f, 0x92, 0x9b, 0x03, 0x76, 0xf2, 0xb4, 0x42, 0x37, 0xbd, 0xad, 0x01, 0xb2, 0x32, 0x62, 0xb1, + 0x30, 0x77, 0xf9, 0xe8, 0xa9, 0x0b, 0xff, 0xfc, 0xd1, 0x3a, 0x5b, 0x8e, 0x73, 0x3a, 0xc1, 0xbe, + 0x73, 0x98, 0xb3, 0x7d, 0x45, 0x74, 0xf2, 0x41, 0xbf, 0x73, 0x1e, 0x67, 0xe0, 0xdf, 0x39, 0x0f, + 0x82, 0x73, 0xbb, 0xa2, 0xff, 0xfa, 0x28, 0xd7, 0xd2, 0xb0, 0x57, 0xc5, 0x2d, 0x18, 0xdd, 0x62, + 0x5a, 0x3d, 0xb1, 0x6f, 0x4b, 0xab, 0x10, 0xb9, 0x6e, 0x90, 0xdf, 0x91, 0xf8, 0xff, 0x58, 0x60, + 0x46, 0xaf, 0xc2, 0x90, 0xe5, 0x4a, 0x57, 0xb2, 0x0f, 0x0d, 0xa0, 0x0c, 0x8b, 0x1d, 0x5a, 0x1b, + 0xeb, 0x2d, 0x4c, 0x91, 0x22, 0x17, 0xaa, 0xae, 0x50, 0x6c, 0x88, 0xbb, 0x67, 0xe9, 0x54, 0xd8, + 0x91, 0x82, 0x24, 0x52, 0xcb, 0xc8, 0x12, 0x1c, 0xd1, 0xa0, 0xf4, 0x52, 0x9a, 0xfc, 0xd2, 0xf4, + 0x22, 0xd5, 0x5e, 0x3f, 0xed, 0x29, 0x81, 0xd1, 0xd0, 0xb0, 0xdd, 0x50, 0xfa, 0x6b, 0xbd, 0x50, + 0x96, 0xda, 0x26, 0xc5, 0x12, 0xeb, 0x2f, 0xd8, 0xcf, 0x00, 0x0b, 0xe4, 0x74, 0x19, 0x70, 0x9f, + 0x2d, 0xb1, 0x8d, 0x4a, 0x2f, 0x03, 0xee, 0x06, 0xc6, 0x97, 0x01, 0xff, 0x1f, 0x0b, 0xcc, 0xe8, + 0x75, 0xa8, 0x06, 0xd2, 0xc8, 0xa1, 0x3a, 0x68, 0xd6, 0x72, 0x61, 0xe1, 0x20, 0xdc, 0x80, 0x84, + 0x69, 0x43, 0x84, 0x1f, 0x6d, 0xc1, 0x98, 0xcd, 0x1d, 0x57, 0x44, 0xb0, 0xb9, 0x0f, 0x0d, 0x90, + 0xb4, 0x93, 0x5f, 0x83, 0xc5, 0x0f, 0x2c, 0x11, 0xeb, 0xbf, 0x0d, 0x5c, 0x2b, 0x2e, 0xec, 0xc8, + 0xb6, 0xa1, 0x2a, 0xd1, 0x0d, 0xe2, 0xeb, 0x2c, 0xd3, 0x24, 0xf3, 0xa1, 0x45, 0x49, 0x93, 0x23, + 0xdc, 0xa8, 0x9e, 0xe7, 0xb3, 0x1e, 0xe7, 0x6c, 0x39, 0x9e, 0xbf, 0xfa, 0x1b, 0x2c, 0xaf, 0xa9, + 0x8c, 0x1c, 0x33, 0x54, 0x7e, 0x69, 0x45, 0x51, 0x65, 0x12, 0xf9, 0x4c, 0x65, 0xe0, 0x19, 0x85, + 0x48, 0x81, 0x9d, 0xdd, 0x70, 0x29, 0x3b, 0xbb, 0x17, 0xe0, 0x82, 0xb0, 0x6b, 0x68, 0x5a, 0x84, + 0xdd, 0xc5, 0x84, 0xc7, 0x04, 0xb3, 0x78, 0xa9, 0x27, 0x41, 0x38, 0x5d, 0x17, 0xfd, 0xaa, 0x06, + 0x55, 0x53, 0x08, 0x08, 0x62, 0x5f, 0xad, 0x0e, 0xf6, 0x74, 0xb2, 0x20, 0xe5, 0x0d, 0x2e, 0xfa, + 0xbe, 0x24, 0x77, 0xb4, 0x2c, 0x3e, 0xa5, 0x2b, 0x7e, 0xd4, 0x6b, 0xf4, 0x5b, 0x54, 0xba, 0x77, + 0x58, 0xea, 0x66, 0x16, 0x9d, 0x83, 0xbb, 0x72, 0xdc, 0x19, 0x70, 0x14, 0x8b, 0x31, 0x46, 0x3e, + 0x90, 0x6f, 0x8f, 0x64, 0xf8, 0x18, 0x72, 0x4a, 0x63, 0x51, 0xbb, 0x8f, 0xfe, 0x89, 0x06, 0x8f, + 0x73, 0xff, 0x99, 0x3a, 0x3d, 0xf3, 0xb7, 0x6d, 0xd3, 0x08, 0x09, 0x0f, 0x90, 0x23, 0xdd, 0x07, + 0xb8, 0x55, 0x60, 0xf5, 0xc4, 0x56, 0x81, 0x4f, 0x1c, 0x1e, 0xd4, 0x1e, 0xaf, 0x1f, 0x03, 0x37, + 0x3e, 0x56, 0x0f, 0xd0, 0x9b, 0x30, 0xe5, 0xa8, 0x11, 0xc4, 0x04, 0x83, 0x29, 0xa5, 0x98, 0x4f, + 0x84, 0x22, 0xe3, 0x9a, 0xd8, 0x44, 0x11, 0x4e, 0x92, 0x9a, 0xbf, 0x07, 0x53, 0x89, 0x85, 0x76, + 0xa6, 0x2a, 0x0d, 0x17, 0x66, 0xd2, 0xeb, 0xe1, 0x4c, 0x2d, 0x64, 0x6e, 0xc3, 0x78, 0x74, 0x50, + 0xa1, 0x47, 0x15, 0x42, 0xf1, 0xb1, 0x7f, 0x9b, 0xec, 0x73, 0xaa, 0xb5, 0xc4, 0x75, 0x8c, 0xeb, + 0xdb, 0x5f, 0xa2, 0x05, 0x02, 0xa1, 0xfe, 0xbb, 0x42, 0xdf, 0xbe, 0x49, 0x3a, 0x5d, 0xc7, 0x08, + 0xc9, 0x3b, 0xff, 0xb5, 0x57, 0xff, 0xef, 0x1a, 0x3f, 0x6f, 0xf8, 0xb1, 0x8a, 0x0c, 0x98, 0xe8, + 0xf0, 0x48, 0xf6, 0x2c, 0x20, 0x8d, 0x56, 0x3e, 0x14, 0xce, 0x5a, 0x8c, 0x06, 0xab, 0x38, 0xd1, + 0x7d, 0x18, 0x97, 0x82, 0x88, 0xd4, 0x1f, 0xac, 0x0c, 0x26, 0x18, 0x44, 0x32, 0x4f, 0xf4, 0x90, + 0x28, 0x4b, 0x02, 0x1c, 0xd3, 0xd2, 0x0d, 0x40, 0xd9, 0x36, 0xf4, 0xce, 0x2a, 0x2d, 0xf4, 0xb5, + 0x64, 0xec, 0xd9, 0x8c, 0x95, 0xbe, 0x54, 0x8f, 0x54, 0x8a, 0xd4, 0x23, 0xfa, 0xaf, 0x55, 0x20, + 0x37, 0x71, 0x28, 0xd2, 0x61, 0x94, 0x3b, 0xcd, 0x09, 0x22, 0x4c, 0x94, 0xe1, 0x1e, 0x75, 0x58, + 0x40, 0xd0, 0x1d, 0xae, 0xb7, 0x70, 0x2d, 0x16, 0xf3, 0x35, 0xe6, 0x12, 0xaa, 0x7b, 0xe6, 0x72, + 0x5e, 0x05, 0x9c, 0xdf, 0x0e, 0xed, 0x02, 0xea, 0x18, 0x7b, 0x69, 0x6c, 0x03, 0x64, 0xc6, 0x5b, + 0xcb, 0x60, 0xc3, 0x39, 0x14, 0xe8, 0x41, 0x6a, 0x98, 0x26, 0xe9, 0x86, 0xc4, 0xe2, 0x43, 0x94, + 0xcf, 0x7d, 0xec, 0x20, 0x5d, 0x4c, 0x82, 0x70, 0xba, 0xae, 0xfe, 0x95, 0x61, 0x78, 0x28, 0x39, + 0x89, 0x74, 0x87, 0x4a, 0xbf, 0xb6, 0x17, 0xa5, 0x35, 0x3c, 0x9f, 0xc8, 0x27, 0xd3, 0xd6, 0xf0, + 0x73, 0x75, 0x9f, 0xb0, 0x23, 0xd9, 0x70, 0x02, 0xd9, 0x28, 0x61, 0x19, 0xff, 0x55, 0x70, 0x52, + 0x2b, 0x70, 0xc6, 0x1b, 0x3a, 0x53, 0x67, 0xbc, 0x4f, 0x6b, 0x30, 0x9f, 0x2c, 0x5e, 0xb1, 0x5d, + 0x3b, 0xd8, 0x11, 0x91, 0x4b, 0x4f, 0x6e, 0x8c, 0xcf, 0x72, 0xf9, 0xac, 0x16, 0x62, 0xc4, 0x7d, + 0xa8, 0xa1, 0xcf, 0x68, 0xf0, 0x70, 0x6a, 0x5e, 0x12, 0x71, 0x54, 0x4f, 0x6e, 0x97, 0xcf, 0xdc, + 0x8a, 0x57, 0x8b, 0x51, 0xe2, 0x7e, 0xf4, 0xf4, 0x7f, 0x55, 0x81, 0x11, 0xf6, 0x5a, 0xfd, 0xce, + 0x30, 0x4f, 0x66, 0x5d, 0x2d, 0xb4, 0xd8, 0x69, 0xa7, 0x2c, 0x76, 0x5e, 0x2c, 0x4f, 0xa2, 0xbf, + 0xc9, 0xce, 0xb7, 0xc3, 0x15, 0x56, 0x6d, 0xd1, 0x62, 0x4a, 0x94, 0x80, 0x58, 0x8b, 0x96, 0xc5, + 0x82, 0x1a, 0x1c, 0xad, 0x39, 0x7e, 0x14, 0x86, 0x7a, 0xbe, 0x93, 0x8e, 0x21, 0x75, 0x17, 0xaf, + 0x62, 0x5a, 0xae, 0x7f, 0x5a, 0x83, 0x19, 0x86, 0x5b, 0xd9, 0xbe, 0x68, 0x17, 0xaa, 0xbe, 0xd8, + 0xc2, 0xe2, 0xdb, 0xac, 0x96, 0x1e, 0x5a, 0x0e, 0x5b, 0x10, 0xa9, 0x8d, 0xc5, 0x2f, 0x1c, 0xd1, + 0xd2, 0xbf, 0x3c, 0x0a, 0x73, 0x45, 0x8d, 0xd0, 0x8f, 0x69, 0x70, 0xc5, 0x8c, 0xa5, 0xb9, 0xc5, + 0x5e, 0xb8, 0xe3, 0xf9, 0x76, 0x68, 0x0b, 0x33, 0x8e, 0x92, 0xd7, 0xdc, 0xfa, 0x62, 0xd4, 0x2b, + 0x16, 0xf7, 0xb3, 0x9e, 0x4b, 0x01, 0x17, 0x50, 0x46, 0x6f, 0xf1, 0xf8, 0x3a, 0xa6, 0x6a, 0xb9, + 0x70, 0xbb, 0xf4, 0x5c, 0x29, 0xc1, 0xc8, 0x65, 0xa7, 0xa2, 0x20, 0x3b, 0xa2, 0x5c, 0x21, 0x47, + 0x89, 0x07, 0xc1, 0xce, 0x6d, 0xb2, 0xdf, 0x35, 0x6c, 0xf9, 0x58, 0x5f, 0x9e, 0x78, 0xab, 0x75, + 0x4b, 0xa0, 0x4a, 0x12, 0x57, 0xca, 0x15, 0x72, 0xe8, 0x93, 0x1a, 0x4c, 0x79, 0xaa, 0x07, 0xf4, + 0x20, 0xb6, 0x90, 0xb9, 0xae, 0xd4, 0x5c, 0x84, 0x4e, 0x82, 0x92, 0x24, 0xe9, 0x9a, 0x98, 0x0d, + 0xd2, 0x47, 0x96, 0x60, 0x6a, 0x6b, 0x83, 0xe7, 0x25, 0x57, 0xce, 0x3f, 0x7e, 0x1d, 0xcf, 0x82, + 0xb3, 0xe4, 0x59, 0xa7, 0x48, 0x68, 0x5a, 0x71, 0x96, 0x64, 0xda, 0xa9, 0xd1, 0xf2, 0x9d, 0x5a, + 0xde, 0xac, 0x37, 0x12, 0xc8, 0x92, 0x9d, 0xca, 0x82, 0xb3, 0xe4, 0xf5, 0x4f, 0x54, 0xe0, 0x6a, + 0xc1, 0x1a, 0xfb, 0x1b, 0xe3, 0xb2, 0xfe, 0x25, 0x0d, 0xc6, 0xd9, 0x1c, 0xbc, 0x43, 0xdc, 0x49, + 0x58, 0x5f, 0x0b, 0x6c, 0xda, 0x7e, 0x43, 0x83, 0xd9, 0x4c, 0xc4, 0xe9, 0x63, 0x39, 0x23, 0x9c, + 0x9b, 0xb9, 0xd5, 0x7b, 0xe2, 0xec, 0x12, 0x43, 0xb1, 0x0f, 0x6e, 0x3a, 0xb3, 0x84, 0xfe, 0x32, + 0x4c, 0x25, 0x4c, 0xda, 0xa2, 0xf0, 0x42, 0x5a, 0x6e, 0x78, 0x21, 0x35, 0x7a, 0x50, 0xa5, 0x5f, + 0xf4, 0xa0, 0x78, 0xc9, 0x67, 0x39, 0xdb, 0xdf, 0x98, 0x25, 0xff, 0x1f, 0x67, 0xc4, 0x92, 0x67, + 0xef, 0x03, 0xaf, 0xc1, 0x28, 0x8b, 0x55, 0x24, 0x4f, 0xcc, 0xe7, 0x4b, 0xc7, 0x40, 0x0a, 0xf8, + 0x4d, 0x8a, 0xff, 0x8f, 0x05, 0x56, 0xd4, 0x48, 0x06, 0xe2, 0x5a, 0x8f, 0x2f, 0x6d, 0xb9, 0x21, + 0xb4, 0xd8, 0xb2, 0xcc, 0xb4, 0x40, 0x98, 0xbf, 0x30, 0xf0, 0xf3, 0xac, 0x54, 0x9c, 0xe4, 0xc6, + 0x7a, 0x8b, 0xa7, 0x02, 0x8a, 0x5e, 0x16, 0xde, 0x00, 0x20, 0x72, 0xf1, 0x4a, 0x2f, 0xc0, 0x17, + 0xca, 0x45, 0x80, 0x8e, 0xb6, 0x80, 0x14, 0x3e, 0xa3, 0xa2, 0x00, 0x2b, 0x44, 0x90, 0x0f, 0x13, + 0x3b, 0xf6, 0x16, 0xf1, 0x5d, 0x2e, 0x47, 0x8d, 0x94, 0x17, 0x11, 0x6f, 0xc5, 0x68, 0xf8, 0x1d, + 0x5f, 0x29, 0xc0, 0x2a, 0x11, 0xe4, 0x27, 0xc2, 0xfd, 0x8d, 0x96, 0x17, 0x8b, 0x62, 0xbd, 0x73, + 0x3c, 0xce, 0x82, 0x50, 0x7f, 0x2e, 0x80, 0x1b, 0x05, 0x29, 0x1b, 0xe4, 0xc5, 0x21, 0x0e, 0x75, + 0xc6, 0x05, 0x8f, 0xf8, 0x37, 0x56, 0x28, 0xd0, 0x79, 0xed, 0xc4, 0x21, 0x55, 0x85, 0x0e, 0xf1, + 0xc5, 0x01, 0xc3, 0xda, 0x0a, 0xdd, 0x49, 0x5c, 0x80, 0x55, 0x22, 0x74, 0x8c, 0x9d, 0x28, 0x10, + 0xaa, 0xd0, 0x11, 0x96, 0x1a, 0x63, 0x1c, 0x4e, 0x55, 0xe4, 0x93, 0x8c, 0x7e, 0x63, 0x85, 0x02, + 0x7a, 0x5d, 0x79, 0x98, 0x82, 0xf2, 0x1a, 0xa8, 0x63, 0x3d, 0x4a, 0x7d, 0x20, 0x56, 0xc4, 0x4c, + 0xb0, 0xbd, 0xfa, 0xb0, 0xa2, 0x84, 0x61, 0x01, 0x62, 0x29, 0xff, 0xc8, 0x28, 0x65, 0x62, 0x63, + 0xda, 0xc9, 0xbe, 0xc6, 0xb4, 0x75, 0x2a, 0xa1, 0x29, 0xce, 0x1d, 0x8c, 0x29, 0x4c, 0xc5, 0x2f, + 0x1c, 0xad, 0x34, 0x10, 0x67, 0xeb, 0x73, 0xa6, 0x4f, 0x2c, 0xd6, 0x76, 0x5a, 0x65, 0xfa, 0xbc, + 0x0c, 0x47, 0x50, 0xb4, 0x0b, 0x93, 0x81, 0x62, 0x99, 0x2b, 0x92, 0x00, 0x0f, 0xf0, 0x36, 0x25, + 0xac, 0x72, 0x59, 0xf4, 0x26, 0xb5, 0x04, 0x27, 0xe8, 0xa0, 0xb7, 0x54, 0x53, 0xc4, 0x99, 0xc1, + 0xc2, 0x84, 0x66, 0x03, 0xdf, 0xc6, 0x1a, 0xb6, 0xc8, 0x0a, 0x4e, 0xb5, 0x10, 0xec, 0x25, 0x8d, + 0xee, 0x66, 0x4f, 0xc5, 0xed, 0xfc, 0x48, 0xa3, 0x3c, 0xfa, 0x69, 0xc9, 0x5e, 0xd7, 0x0b, 0x7a, + 0x3e, 0x61, 0x01, 0xbd, 0xd9, 0xe7, 0x41, 0xf1, 0xa7, 0x5d, 0x4e, 0x03, 0x71, 0xb6, 0x3e, 0xfa, + 0x01, 0x0d, 0x66, 0x78, 0x0e, 0x65, 0x7a, 0x74, 0x79, 0x2e, 0x71, 0xc3, 0x80, 0x25, 0x09, 0x2e, + 0xe9, 0x29, 0xd9, 0x4a, 0xe1, 0xe2, 0x89, 0xe7, 0xd2, 0xa5, 0x38, 0x43, 0x93, 0xae, 0x1c, 0xd5, + 0x71, 0x9d, 0xe5, 0x1a, 0x2e, 0xb9, 0x72, 0x54, 0xa7, 0x78, 0xbe, 0x72, 0xd4, 0x12, 0x9c, 0xa0, + 0x83, 0x9e, 0x85, 0xa9, 0x40, 0x66, 0x1b, 0x63, 0x33, 0x78, 0x39, 0x0e, 0x81, 0xd5, 0x52, 0x01, + 0x38, 0x59, 0x0f, 0x7d, 0x1c, 0x26, 0xd5, 0xb3, 0x53, 0x64, 0x28, 0x3e, 0xc5, 0x88, 0x9c, 0xbc, + 0xe7, 0x2a, 0x28, 0x41, 0x50, 0xff, 0x77, 0x1a, 0x40, 0xa4, 0xbe, 0x38, 0x0f, 0xa5, 0xbc, 0x95, + 0xd0, 0xe8, 0x2c, 0x0d, 0xa4, 0x6e, 0x29, 0x0c, 0x72, 0xac, 0xff, 0xbe, 0x06, 0xd3, 0x71, 0xb5, + 0x73, 0xb8, 0x2b, 0x98, 0xc9, 0xbb, 0xc2, 0x87, 0x07, 0x1b, 0x57, 0xc1, 0x85, 0xe1, 0xff, 0x55, + 0xd4, 0x51, 0x31, 0x71, 0x70, 0x37, 0xf1, 0xc8, 0x4d, 0x49, 0xdf, 0x1a, 0xe4, 0x91, 0x5b, 0xf5, + 0xe6, 0x8d, 0xc7, 0x9b, 0xf3, 0xe8, 0xfd, 0x77, 0x12, 0xc2, 0xd8, 0x00, 0x3e, 0xeb, 0x91, 0xe4, + 0x25, 0x49, 0xf3, 0x09, 0x38, 0x4a, 0x32, 0x7b, 0x43, 0xe5, 0xd5, 0x03, 0x04, 0x26, 0x4e, 0x0c, + 0xb8, 0x2f, 0x87, 0xd6, 0x7f, 0x74, 0x1a, 0x26, 0x14, 0x4d, 0x5f, 0xea, 0xc9, 0x5e, 0x3b, 0x8f, + 0x27, 0xfb, 0x10, 0x26, 0xcc, 0x28, 0x43, 0x87, 0x9c, 0xf6, 0x01, 0x69, 0x46, 0x67, 0x44, 0x9c, + 0xfb, 0x23, 0xc0, 0x2a, 0x19, 0x2a, 0xc9, 0x44, 0x6b, 0x6c, 0xe8, 0x14, 0x0c, 0x29, 0xfa, 0xad, + 0xab, 0xf7, 0x03, 0x48, 0x61, 0x98, 0x58, 0x22, 0x0a, 0x66, 0x64, 0xb3, 0xde, 0x0c, 0x6e, 0x45, + 0x30, 0xac, 0xd4, 0xcb, 0x3e, 0x01, 0x8f, 0x9c, 0xdb, 0x13, 0x30, 0x5d, 0x06, 0x8e, 0x4c, 0x10, + 0x37, 0x90, 0x51, 0x50, 0x94, 0x66, 0x2e, 0x5e, 0x06, 0x51, 0x51, 0x80, 0x15, 0x22, 0x05, 0x96, + 0x1b, 0x63, 0xa5, 0x2c, 0x37, 0x7a, 0x70, 0xd1, 0x27, 0xa1, 0xbf, 0x5f, 0xdf, 0x37, 0x59, 0x34, + 0x66, 0x3f, 0x64, 0x57, 0xda, 0x6a, 0xb9, 0x60, 0x47, 0x38, 0x8b, 0x0a, 0xe7, 0xe1, 0x4f, 0x48, + 0x83, 0xe3, 0x7d, 0xa5, 0xc1, 0x0f, 0xc0, 0x44, 0x48, 0xcc, 0x1d, 0xd7, 0x36, 0x0d, 0xa7, 0xd9, + 0x10, 0x21, 0x22, 0x63, 0xc1, 0x26, 0x06, 0x61, 0xb5, 0x1e, 0x5a, 0x82, 0xa1, 0x9e, 0x6d, 0x09, + 0x71, 0xf8, 0x9b, 0x22, 0x9d, 0x79, 0xb3, 0xf1, 0xe0, 0xa0, 0xf6, 0xee, 0xd8, 0x14, 0x22, 0x1a, + 0xd5, 0x8d, 0xee, 0xbd, 0xf6, 0x8d, 0x70, 0xbf, 0x4b, 0x82, 0x85, 0xbb, 0xcd, 0x06, 0xa6, 0x8d, + 0xf3, 0xac, 0x5a, 0x26, 0x4f, 0x60, 0xd5, 0xf2, 0xb6, 0x06, 0x17, 0x8d, 0xb4, 0xba, 0x9f, 0x04, + 0x73, 0x53, 0xe5, 0xb9, 0x65, 0xfe, 0x13, 0xc2, 0xd2, 0xc3, 0x62, 0x7c, 0x17, 0x17, 0xb3, 0xe4, + 0x70, 0x5e, 0x1f, 0x90, 0x0f, 0xa8, 0x63, 0xb7, 0xa3, 0x5c, 0x6d, 0xe2, 0xab, 0x4f, 0x97, 0x53, + 0x64, 0xac, 0x65, 0x30, 0xe1, 0x1c, 0xec, 0xe8, 0x3e, 0x4c, 0x98, 0xf1, 0xa3, 0x80, 0x10, 0xeb, + 0x1b, 0xa7, 0xf1, 0x2a, 0xc1, 0xaf, 0x7e, 0xea, 0x8b, 0x83, 0x4a, 0x29, 0x7a, 0xce, 0x53, 0xee, + 0xdc, 0xe2, 0x49, 0x8b, 0x8d, 0x7a, 0xa6, 0xfc, 0x73, 0x5e, 0x3e, 0x46, 0xdc, 0x87, 0x1a, 0x0b, + 0x31, 0xe4, 0x24, 0x53, 0x2a, 0xce, 0xcd, 0x96, 0x77, 0x4b, 0x4e, 0x65, 0x67, 0xe4, 0x4b, 0x33, + 0x55, 0x88, 0xd3, 0x04, 0xd1, 0x0a, 0x20, 0xc2, 0x75, 0xcb, 0xf1, 0x4d, 0x25, 0x98, 0x43, 0x51, + 0xea, 0x49, 0xb4, 0x9c, 0x81, 0xe2, 0x9c, 0x16, 0xfa, 0xef, 0x69, 0x42, 0xf3, 0x77, 0x8e, 0x66, + 0x1d, 0x67, 0xfd, 0x26, 0xa8, 0xff, 0x99, 0x06, 0x99, 0xcb, 0x06, 0xda, 0x82, 0x31, 0x8a, 0xa2, + 0xb1, 0xde, 0x12, 0xc3, 0xfa, 0x50, 0xb9, 0x63, 0x97, 0xa1, 0xe0, 0x6a, 0x54, 0xf1, 0x03, 0x4b, + 0xc4, 0xf4, 0xfa, 0xe2, 0x2a, 0xd1, 0xae, 0xc5, 0x08, 0x4b, 0xc9, 0x35, 0x6a, 0xd4, 0x6c, 0x7e, + 0x09, 0x50, 0x4b, 0x70, 0x82, 0x8e, 0xbe, 0x0a, 0x10, 0x5f, 0x10, 0x07, 0xb6, 0xf4, 0xf9, 0x97, + 0xa3, 0x70, 0x79, 0x50, 0x1f, 0x07, 0x96, 0x11, 0x90, 0xec, 0xda, 0x66, 0xb8, 0xb8, 0x1d, 0x12, + 0xff, 0xce, 0x9d, 0xb5, 0xcd, 0x1d, 0x9f, 0x04, 0x3b, 0x9e, 0x63, 0x95, 0x4c, 0x49, 0xc8, 0x5e, + 0x06, 0x97, 0x73, 0x31, 0xe2, 0x02, 0x4a, 0xec, 0x72, 0x4c, 0x21, 0xf4, 0xec, 0xa4, 0x42, 0x69, + 0xcf, 0x0f, 0x42, 0x11, 0xa8, 0x85, 0x5f, 0x8e, 0xd3, 0x40, 0x9c, 0xad, 0x9f, 0x46, 0xb2, 0x6a, + 0x77, 0x6c, 0x9e, 0x9a, 0x4d, 0xcb, 0x22, 0x61, 0x40, 0x9c, 0xad, 0xaf, 0x22, 0xe1, 0x5f, 0x8a, + 0x72, 0x8d, 0x91, 0x2c, 0x92, 0x08, 0x88, 0xb3, 0xf5, 0x91, 0x05, 0x8f, 0xf8, 0xc4, 0xf4, 0x3a, + 0x1d, 0xe2, 0x5a, 0x3c, 0xd9, 0xae, 0xe1, 0xb7, 0x6d, 0x77, 0xc5, 0x37, 0x58, 0x45, 0xa6, 0x6b, + 0xd4, 0x58, 0x82, 0xa1, 0x47, 0x70, 0x9f, 0x7a, 0xb8, 0x2f, 0x16, 0xd4, 0x81, 0x0b, 0x3c, 0xb3, + 0x9f, 0xdf, 0x74, 0x43, 0xe2, 0xef, 0x1a, 0x8e, 0x50, 0x28, 0x9e, 0xf4, 0x8b, 0x31, 0x4e, 0x76, + 0x37, 0x89, 0x0a, 0xa7, 0x71, 0xa3, 0x7d, 0x2a, 0xbf, 0x88, 0xee, 0x28, 0x24, 0xab, 0xe5, 0x73, + 0x66, 0xe2, 0x2c, 0x3a, 0x9c, 0x47, 0x03, 0x35, 0xe1, 0x62, 0x68, 0xf8, 0x6d, 0x12, 0xd6, 0x37, + 0xee, 0x6e, 0x10, 0xdf, 0xa4, 0xc7, 0x8d, 0xc3, 0xc5, 0x19, 0x8d, 0xa3, 0xda, 0xcc, 0x82, 0x71, + 0x5e, 0x1b, 0xfd, 0x6d, 0x0d, 0x84, 0x75, 0x36, 0x7a, 0x24, 0xf1, 0xfe, 0x53, 0x4d, 0xbd, 0xfd, + 0xc8, 0x04, 0x12, 0x95, 0xdc, 0x04, 0x12, 0xef, 0x55, 0x82, 0x09, 0x8d, 0xc7, 0x6c, 0x94, 0x63, + 0x56, 0x32, 0xab, 0x3d, 0x05, 0xe3, 0x11, 0x33, 0x17, 0x42, 0x36, 0x8b, 0x62, 0x1a, 0x73, 0xfd, + 0x18, 0xae, 0xff, 0x8e, 0x06, 0x10, 0x27, 0x13, 0x39, 0x5e, 0x3e, 0xb8, 0x23, 0xcd, 0xbd, 0x94, + 0x3c, 0x76, 0x43, 0x85, 0x79, 0xec, 0xce, 0x28, 0xbd, 0xdb, 0x2f, 0x6a, 0x70, 0x21, 0x19, 0xdd, + 0x29, 0x40, 0xef, 0x81, 0x31, 0x11, 0xff, 0x51, 0x04, 0x70, 0x63, 0x4d, 0x45, 0x00, 0x06, 0x2c, + 0x61, 0x49, 0x15, 0xe1, 0x00, 0xb7, 0xde, 0xfc, 0x20, 0x53, 0x47, 0x5c, 0x40, 0xdf, 0x9e, 0x85, + 0x51, 0x1e, 0x3c, 0x90, 0xb2, 0xc7, 0x1c, 0xc7, 0xd3, 0xdb, 0xe5, 0x63, 0x14, 0x96, 0xf1, 0x16, + 0x54, 0x13, 0x0a, 0x54, 0xfa, 0x26, 0x14, 0xc0, 0x3c, 0x6d, 0xe6, 0x00, 0xcf, 0x41, 0x75, 0xdc, + 0xe4, 0xcf, 0x41, 0x51, 0xca, 0xcc, 0x30, 0xf1, 0x4e, 0x32, 0x5c, 0x5e, 0x98, 0xe4, 0x13, 0xa0, + 0xbc, 0x96, 0x4c, 0xf7, 0x7d, 0x29, 0x91, 0xd1, 0xd9, 0x46, 0xca, 0x9b, 0x5f, 0x8a, 0x29, 0x3f, + 0x46, 0x74, 0xb6, 0x68, 0x23, 0x8d, 0x16, 0x6e, 0xa4, 0x6d, 0x18, 0x13, 0x5b, 0x41, 0xf0, 0xd9, + 0x0f, 0x0d, 0x90, 0x22, 0x49, 0x89, 0x7c, 0xcc, 0x0b, 0xb0, 0x44, 0x4e, 0x0f, 0xef, 0x8e, 0xb1, + 0x67, 0x77, 0x7a, 0x1d, 0xc6, 0x5c, 0x47, 0xd4, 0xaa, 0xac, 0x18, 0x4b, 0x38, 0xab, 0xca, 0xad, + 0x56, 0x19, 0x33, 0x54, 0xab, 0xf2, 0x62, 0x2c, 0xe1, 0xe8, 0x55, 0xa8, 0x76, 0x8c, 0xbd, 0x56, + 0xcf, 0x6f, 0x13, 0xf1, 0x4a, 0x52, 0x2c, 0x2e, 0xf6, 0x42, 0xdb, 0x59, 0xb0, 0xdd, 0x30, 0x08, + 0xfd, 0x85, 0xa6, 0x1b, 0xde, 0xf1, 0x5b, 0xa1, 0x1f, 0x25, 0xa1, 0x5b, 0x13, 0x58, 0x70, 0x84, + 0x0f, 0x39, 0x30, 0xdd, 0x31, 0xf6, 0xee, 0xba, 0x06, 0x0f, 0xbc, 0xe7, 0xf0, 0xc7, 0x91, 0x32, + 0x14, 0xd8, 0x53, 0xf9, 0x5a, 0x02, 0x17, 0x4e, 0xe1, 0xce, 0x79, 0x95, 0x9f, 0x3c, 0xab, 0x57, + 0xf9, 0xc5, 0xc8, 0x07, 0x89, 0x5f, 0x25, 0x1f, 0xca, 0xf5, 0xcd, 0xef, 0xeb, 0x5f, 0xf4, 0x5a, + 0xe4, 0x5f, 0x34, 0x5d, 0xfe, 0x19, 0xb9, 0x8f, 0x6f, 0x51, 0x0f, 0x26, 0xa8, 0xb0, 0xce, 0x4b, + 0xe9, 0x5d, 0xaf, 0xb4, 0x56, 0xb4, 0x11, 0xa1, 0x51, 0xd2, 0xa7, 0xc7, 0xa8, 0xb1, 0x4a, 0x07, + 0xdd, 0x81, 0xcb, 0x22, 0xa1, 0x6d, 0x5c, 0x85, 0xe9, 0x18, 0x66, 0xd8, 0xfe, 0x61, 0x76, 0xc0, + 0xb7, 0xf3, 0x2a, 0xe0, 0xfc, 0x76, 0x71, 0x1c, 0x99, 0xd9, 0xfc, 0x38, 0x32, 0xe8, 0x87, 0xf3, + 0xde, 0x3e, 0x10, 0x9b, 0xd3, 0x6f, 0x2b, 0xcf, 0x1b, 0x4a, 0xbf, 0x80, 0xfc, 0x6b, 0x0d, 0xe6, + 0x3a, 0x05, 0x79, 0xc6, 0xc5, 0x93, 0xcc, 0xe6, 0x00, 0xfc, 0xa1, 0x30, 0x77, 0xf9, 0xd2, 0xe3, + 0x87, 0x07, 0xb5, 0x23, 0x33, 0x9c, 0xe3, 0xc2, 0xbe, 0x21, 0x1f, 0xc6, 0x82, 0xfd, 0xc0, 0x0c, + 0x9d, 0x60, 0xee, 0x52, 0xf9, 0x74, 0xd6, 0x82, 0xb3, 0xb6, 0x38, 0x26, 0xce, 0x5a, 0xe3, 0x78, + 0xfb, 0xbc, 0x14, 0x4b, 0x42, 0xe8, 0x47, 0x35, 0x98, 0x15, 0x4a, 0x1b, 0xc5, 0xb9, 0xf6, 0x72, + 0x79, 0x6b, 0xc9, 0x7a, 0x1a, 0xd9, 0x9d, 0x2e, 0x0f, 0xd6, 0xce, 0x84, 0xf4, 0x0c, 0x14, 0x67, + 0xa9, 0x0f, 0xea, 0xfd, 0x3e, 0x40, 0x38, 0xcf, 0xf9, 0xe7, 0x61, 0x52, 0x9d, 0xb8, 0x13, 0x39, + 0xdd, 0xff, 0x8c, 0x06, 0x33, 0xe9, 0x83, 0x14, 0xed, 0xc0, 0x98, 0xd8, 0x55, 0xe2, 0xce, 0xbc, + 0x58, 0xd6, 0x8e, 0xc1, 0x21, 0xc2, 0x1b, 0x80, 0xcb, 0x65, 0xa2, 0x08, 0x4b, 0xf4, 0xaa, 0x9d, + 0x52, 0xa5, 0x8f, 0x9d, 0xd2, 0x0b, 0x70, 0x25, 0x7f, 0x7f, 0x51, 0xa9, 0xd6, 0x70, 0x1c, 0xef, + 0xbe, 0xb8, 0x98, 0xc6, 0xe9, 0xc1, 0x68, 0x21, 0xe6, 0x30, 0xfd, 0x7b, 0x20, 0x1d, 0xbc, 0x19, + 0xbd, 0x0e, 0xe3, 0x41, 0xb0, 0xc3, 0xe3, 0x72, 0x8a, 0x41, 0x96, 0xd3, 0x48, 0xc8, 0xe0, 0x9e, + 0x5c, 0x10, 0x8f, 0x7e, 0xe2, 0x18, 0xfd, 0xd2, 0x2b, 0x5f, 0xfc, 0xca, 0xb5, 0x77, 0xfd, 0xee, + 0x57, 0xae, 0xbd, 0xeb, 0xcb, 0x5f, 0xb9, 0xf6, 0xae, 0xef, 0x3d, 0xbc, 0xa6, 0x7d, 0xf1, 0xf0, + 0x9a, 0xf6, 0xbb, 0x87, 0xd7, 0xb4, 0x2f, 0x1f, 0x5e, 0xd3, 0xfe, 0xcb, 0xe1, 0x35, 0xed, 0x47, + 0xfe, 0xeb, 0xb5, 0x77, 0xbd, 0xfa, 0x4c, 0x4c, 0xfd, 0x86, 0x24, 0x1a, 0xff, 0xd3, 0xbd, 0xd7, + 0xbe, 0x41, 0xa9, 0x4b, 0x17, 0x30, 0x46, 0xfd, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x7b, 0x12, + 0x38, 0x32, 0x93, 0xf6, 0x00, 0x00, } func (m *APIServerLogging) Marshal() (dAtA []byte, err error) { @@ -8443,6 +8478,54 @@ func (m *DeploymentRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *DualApprovalForDeletion) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DualApprovalForDeletion) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DualApprovalForDeletion) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IncludeServiceAccounts != nil { + i-- + if *m.IncludeServiceAccounts { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(m.Resource) + copy(dAtA[i:], m.Resource) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *ETCDEncryptionKeyRotation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -12209,6 +12292,20 @@ func (m *ProjectSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.DualApprovalForDeletion) > 0 { + for iNdEx := len(m.DualApprovalForDeletion) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DualApprovalForDeletion[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + } if m.Tolerations != nil { { size, err := m.Tolerations.MarshalToSizedBuffer(dAtA[:i]) @@ -17275,6 +17372,22 @@ func (m *DeploymentRef) Size() (n int) { return n } +func (m *DualApprovalForDeletion) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Resource) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.IncludeServiceAccounts != nil { + n += 2 + } + return n +} + func (m *ETCDEncryptionKeyRotation) Size() (n int) { if m == nil { return 0 @@ -18717,6 +18830,12 @@ func (m *ProjectSpec) Size() (n int) { l = m.Tolerations.Size() n += 1 + l + sovGenerated(uint64(l)) } + if len(m.DualApprovalForDeletion) > 0 { + for _, e := range m.DualApprovalForDeletion { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -20863,6 +20982,18 @@ func (this *DeploymentRef) String() string { }, "") return s } +func (this *DualApprovalForDeletion) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DualApprovalForDeletion{`, + `Resource:` + fmt.Sprintf("%v", this.Resource) + `,`, + `Selector:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v11.LabelSelector", 1), `&`, ``, 1) + `,`, + `IncludeServiceAccounts:` + valueToStringGenerated(this.IncludeServiceAccounts) + `,`, + `}`, + }, "") + return s +} func (this *ETCDEncryptionKeyRotation) String() string { if this == nil { return "nil" @@ -21804,6 +21935,11 @@ func (this *ProjectSpec) String() string { repeatedStringForMembers += strings.Replace(strings.Replace(f.String(), "ProjectMember", "ProjectMember", 1), `&`, ``, 1) + "," } repeatedStringForMembers += "}" + repeatedStringForDualApprovalForDeletion := "[]DualApprovalForDeletion{" + for _, f := range this.DualApprovalForDeletion { + repeatedStringForDualApprovalForDeletion += strings.Replace(strings.Replace(f.String(), "DualApprovalForDeletion", "DualApprovalForDeletion", 1), `&`, ``, 1) + "," + } + repeatedStringForDualApprovalForDeletion += "}" s := strings.Join([]string{`&ProjectSpec{`, `CreatedBy:` + strings.Replace(fmt.Sprintf("%v", this.CreatedBy), "Subject", "v13.Subject", 1) + `,`, `Description:` + valueToStringGenerated(this.Description) + `,`, @@ -21812,6 +21948,7 @@ func (this *ProjectSpec) String() string { `Members:` + repeatedStringForMembers + `,`, `Namespace:` + valueToStringGenerated(this.Namespace) + `,`, `Tolerations:` + strings.Replace(this.Tolerations.String(), "ProjectTolerations", "ProjectTolerations", 1) + `,`, + `DualApprovalForDeletion:` + repeatedStringForDualApprovalForDeletion + `,`, `}`, }, "") return s @@ -30064,6 +30201,142 @@ func (m *DeploymentRef) Unmarshal(dAtA []byte) error { } return nil } +func (m *DualApprovalForDeletion) 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: DualApprovalForDeletion: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DualApprovalForDeletion: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resource", 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 < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resource = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeServiceAccounts", 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 + } + } + b := bool(v != 0) + m.IncludeServiceAccounts = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ETCDEncryptionKeyRotation) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -41641,6 +41914,40 @@ func (m *ProjectSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DualApprovalForDeletion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DualApprovalForDeletion = append(m.DualApprovalForDeletion, DualApprovalForDeletion{}) + if err := m.DualApprovalForDeletion[len(m.DualApprovalForDeletion)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto index 02726d0ff..18312efc9 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto @@ -770,6 +770,20 @@ message DeploymentRef { optional string name = 1; } +// DualApprovalForDeletion contains configuration for the dual approval concept for resource deletion. +message DualApprovalForDeletion { + // Resource is the name of the resource this applies to. + optional string resource = 1; + + // Selector is the label selector for the resources. + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // IncludeServiceAccounts specifies whether the concept also applies when deletion is triggered by ServiceAccounts. + // Defaults to true. + // +optional + optional bool includeServiceAccounts = 3; +} + // ETCDEncryptionKeyRotation contains information about the ETCD encryption key credential rotation. message ETCDEncryptionKeyRotation { // Phase describes the phase of the ETCD encryption key credential rotation. @@ -2032,6 +2046,10 @@ message ProjectSpec { // Tolerations contains the tolerations for taints on seed clusters. // +optional optional ProjectTolerations tolerations = 7; + + // DualApprovalForDeletion contains configuration for the dual approval concept for resource deletion. + // +optional + repeated DualApprovalForDeletion dualApprovalForDeletion = 8; } // ProjectStatus holds the most recently observed status of the project. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go index edb899684..56887c777 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go @@ -71,6 +71,9 @@ type ProjectSpec struct { // Tolerations contains the tolerations for taints on seed clusters. // +optional Tolerations *ProjectTolerations `json:"tolerations,omitempty" protobuf:"bytes,7,opt,name=tolerations"` + // DualApprovalForDeletion contains configuration for the dual approval concept for resource deletion. + // +optional + DualApprovalForDeletion []DualApprovalForDeletion `json:"dualApprovalForDeletion,omitempty" protobuf:"bytes,8,opt,name=dualApprovalForDeletion"` } // ProjectStatus holds the most recently observed status of the project. @@ -131,6 +134,18 @@ type Toleration struct { Value *string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` } +// DualApprovalForDeletion contains configuration for the dual approval concept for resource deletion. +type DualApprovalForDeletion struct { + // Resource is the name of the resource this applies to. + Resource string `json:"resource" protobuf:"bytes,1,opt,name=resource"` + // Selector is the label selector for the resources. + Selector metav1.LabelSelector `json:"selector" protobuf:"bytes,2,opt,name=selector"` + // IncludeServiceAccounts specifies whether the concept also applies when deletion is triggered by ServiceAccounts. + // Defaults to true. + // +optional + IncludeServiceAccounts *bool `json:"includeServiceAccounts,omitempty" protobuf:"varint,3,opt,name=includeServiceAccounts"` +} + const ( // ProjectMemberAdmin is a const for a role that provides full admin access. ProjectMemberAdmin = "admin" diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go index b7a56e556..603992723 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go @@ -1249,11 +1249,15 @@ type KubeletConfigReserved struct { type SwapBehavior string const ( + // NoSwap is a constant for the kubelet's swap behavior restricting Kubernetes workloads to not use swap. + // Only available for Kubernetes versions >= v1.30. + NoSwap SwapBehavior = "NoSwap" // LimitedSwap is a constant for the kubelet's swap behavior limitting the amount of swap usable for Kubernetes workloads. Workloads on the node not managed by Kubernetes can still swap. // - cgroupsv1 host: Kubernetes workloads can use any combination of memory and swap, up to the pod's memory limit // - cgroupsv2 host: swap is managed independently from memory. Kubernetes workloads cannot use swap memory. LimitedSwap SwapBehavior = "LimitedSwap" // UnlimitedSwap is a constant for the kubelet's swap behavior enabling Kubernetes workloads to use as much swap memory as required, up to the system limit (not limited by pod or container memory limits). + // Only available for Kubernetes versions < v1.30. UnlimitedSwap SwapBehavior = "UnlimitedSwap" ) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go index 69ef02ded..438bc0021 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go @@ -520,6 +520,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*DualApprovalForDeletion)(nil), (*core.DualApprovalForDeletion)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_DualApprovalForDeletion_To_core_DualApprovalForDeletion(a.(*DualApprovalForDeletion), b.(*core.DualApprovalForDeletion), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*core.DualApprovalForDeletion)(nil), (*DualApprovalForDeletion)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_core_DualApprovalForDeletion_To_v1beta1_DualApprovalForDeletion(a.(*core.DualApprovalForDeletion), b.(*DualApprovalForDeletion), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*ETCDEncryptionKeyRotation)(nil), (*core.ETCDEncryptionKeyRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1beta1_ETCDEncryptionKeyRotation_To_core_ETCDEncryptionKeyRotation(a.(*ETCDEncryptionKeyRotation), b.(*core.ETCDEncryptionKeyRotation), scope) }); err != nil { @@ -3025,6 +3035,30 @@ func Convert_core_DeploymentRef_To_v1beta1_DeploymentRef(in *core.DeploymentRef, return autoConvert_core_DeploymentRef_To_v1beta1_DeploymentRef(in, out, s) } +func autoConvert_v1beta1_DualApprovalForDeletion_To_core_DualApprovalForDeletion(in *DualApprovalForDeletion, out *core.DualApprovalForDeletion, s conversion.Scope) error { + out.Resource = in.Resource + out.Selector = in.Selector + out.IncludeServiceAccounts = (*bool)(unsafe.Pointer(in.IncludeServiceAccounts)) + return nil +} + +// Convert_v1beta1_DualApprovalForDeletion_To_core_DualApprovalForDeletion is an autogenerated conversion function. +func Convert_v1beta1_DualApprovalForDeletion_To_core_DualApprovalForDeletion(in *DualApprovalForDeletion, out *core.DualApprovalForDeletion, s conversion.Scope) error { + return autoConvert_v1beta1_DualApprovalForDeletion_To_core_DualApprovalForDeletion(in, out, s) +} + +func autoConvert_core_DualApprovalForDeletion_To_v1beta1_DualApprovalForDeletion(in *core.DualApprovalForDeletion, out *DualApprovalForDeletion, s conversion.Scope) error { + out.Resource = in.Resource + out.Selector = in.Selector + out.IncludeServiceAccounts = (*bool)(unsafe.Pointer(in.IncludeServiceAccounts)) + return nil +} + +// Convert_core_DualApprovalForDeletion_To_v1beta1_DualApprovalForDeletion is an autogenerated conversion function. +func Convert_core_DualApprovalForDeletion_To_v1beta1_DualApprovalForDeletion(in *core.DualApprovalForDeletion, out *DualApprovalForDeletion, s conversion.Scope) error { + return autoConvert_core_DualApprovalForDeletion_To_v1beta1_DualApprovalForDeletion(in, out, s) +} + func autoConvert_v1beta1_ETCDEncryptionKeyRotation_To_core_ETCDEncryptionKeyRotation(in *ETCDEncryptionKeyRotation, out *core.ETCDEncryptionKeyRotation, s conversion.Scope) error { out.Phase = core.CredentialsRotationPhase(in.Phase) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) @@ -4752,6 +4786,7 @@ func autoConvert_v1beta1_ProjectSpec_To_core_ProjectSpec(in *ProjectSpec, out *c } out.Namespace = (*string)(unsafe.Pointer(in.Namespace)) out.Tolerations = (*core.ProjectTolerations)(unsafe.Pointer(in.Tolerations)) + out.DualApprovalForDeletion = *(*[]core.DualApprovalForDeletion)(unsafe.Pointer(&in.DualApprovalForDeletion)) return nil } @@ -4773,6 +4808,7 @@ func autoConvert_core_ProjectSpec_To_v1beta1_ProjectSpec(in *core.ProjectSpec, o } out.Namespace = (*string)(unsafe.Pointer(in.Namespace)) out.Tolerations = (*ProjectTolerations)(unsafe.Pointer(in.Tolerations)) + out.DualApprovalForDeletion = *(*[]DualApprovalForDeletion)(unsafe.Pointer(&in.DualApprovalForDeletion)) return nil } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go index b20318003..b46a5f7a5 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go @@ -1435,6 +1435,28 @@ func (in *DeploymentRef) DeepCopy() *DeploymentRef { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DualApprovalForDeletion) DeepCopyInto(out *DualApprovalForDeletion) { + *out = *in + in.Selector.DeepCopyInto(&out.Selector) + if in.IncludeServiceAccounts != nil { + in, out := &in.IncludeServiceAccounts, &out.IncludeServiceAccounts + *out = new(bool) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DualApprovalForDeletion. +func (in *DualApprovalForDeletion) DeepCopy() *DualApprovalForDeletion { + if in == nil { + return nil + } + out := new(DualApprovalForDeletion) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ETCDEncryptionKeyRotation) DeepCopyInto(out *ETCDEncryptionKeyRotation) { *out = *in @@ -3438,6 +3460,13 @@ func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec) { *out = new(ProjectTolerations) (*in).DeepCopyInto(*out) } + if in.DualApprovalForDeletion != nil { + in, out := &in.DualApprovalForDeletion, &out.DualApprovalForDeletion + *out = make([]DualApprovalForDeletion, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go index 95dc187b7..73623d1de 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go @@ -1437,6 +1437,28 @@ func (in *DeploymentRef) DeepCopy() *DeploymentRef { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DualApprovalForDeletion) DeepCopyInto(out *DualApprovalForDeletion) { + *out = *in + in.Selector.DeepCopyInto(&out.Selector) + if in.IncludeServiceAccounts != nil { + in, out := &in.IncludeServiceAccounts, &out.IncludeServiceAccounts + *out = new(bool) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DualApprovalForDeletion. +func (in *DualApprovalForDeletion) DeepCopy() *DualApprovalForDeletion { + if in == nil { + return nil + } + out := new(DualApprovalForDeletion) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ETCDEncryptionKeyRotation) DeepCopyInto(out *ETCDEncryptionKeyRotation) { *out = *in @@ -3433,6 +3455,13 @@ func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec) { *out = new(ProjectTolerations) (*in).DeepCopyInto(*out) } + if in.DualApprovalForDeletion != nil { + in, out := &in.DualApprovalForDeletion, &out.DualApprovalForDeletion + *out = make([]DualApprovalForDeletion, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_worker.go b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_worker.go index d2cf799c3..0a79ccc8b 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_worker.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/types_worker.go @@ -132,7 +132,16 @@ type WorkerPool struct { ProviderConfig *runtime.RawExtension `json:"providerConfig,omitempty"` // UserData is a base64-encoded string that contains the data that is sent to the provider's APIs // when a new machine/VM that is part of this worker pool shall be spawned. - UserData []byte `json:"userData"` + // Either this or UserDataSecretRef must be provided. + // Deprecated: This field will be removed in future release. + // TODO(rfranzke): Remove this field after v1.100 has been released. + // +optional + UserData []byte `json:"userData,omitempty"` + // UserDataSecretRef references a Secret and a data key containing the data that is sent to the provider's APIs when + // a new machine/VM that is part of this worker pool shall be spawned. + // Either this or UserData must be provided. + // +optional + UserDataSecretRef *corev1.SecretKeySelector `json:"userDataSecretRef,omitempty"` // Volume contains information about the root disks that should be used for this worker pool. // +optional Volume *Volume `json:"volume,omitempty"` diff --git a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go index 89cfb6e83..90800f127 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/extensions/v1alpha1/zz_generated.deepcopy.go @@ -1741,6 +1741,11 @@ func (in *WorkerPool) DeepCopyInto(out *WorkerPool) { *out = make([]byte, len(*in)) copy(*out, *in) } + if in.UserDataSecretRef != nil { + in, out := &in.UserDataSecretRef, &out.UserDataSecretRef + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } if in.Volume != nil { in, out := &in.Volume, &out.Volume *out = new(Volume) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/doc.go b/vendor/github.com/gardener/gardener/pkg/apis/security/doc.go new file mode 100644 index 000000000..f8d3e8eba --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/doc.go @@ -0,0 +1,9 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +// +k8s:deepcopy-gen=package + +// Package security is the internal version of the API. +// +groupName=security.gardener.cloud +package security diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/install/install.go b/vendor/github.com/gardener/gardener/pkg/apis/security/install/install.go new file mode 100644 index 000000000..961c5a030 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/install/install.go @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package install + +import ( + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + + "github.com/gardener/gardener/pkg/apis/security" + "github.com/gardener/gardener/pkg/apis/security/v1alpha1" +) + +var ( + localSchemeBuilder = runtime.SchemeBuilder{ + v1alpha1.AddToScheme, + } + // AddToScheme adds all versioned API types to the given scheme. + AddToScheme = localSchemeBuilder.AddToScheme +) + +// Install registers the API group and adds types to a scheme. +func Install(scheme *runtime.Scheme) { + utilruntime.Must(security.AddToScheme(scheme)) + utilruntime.Must(v1alpha1.AddToScheme(scheme)) + + utilruntime.Must(scheme.SetVersionPriority(v1alpha1.SchemeGroupVersion)) +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/register.go b/vendor/github.com/gardener/gardener/pkg/apis/security/register.go new file mode 100644 index 000000000..bc4cfa3bb --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/register.go @@ -0,0 +1,43 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package security + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the name of the security API group. +const GroupName = "security.gardener.cloud" + +// SchemeGroupVersion is group version used to register these objects. +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns back a Group qualified GroupKind. +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns back a Group qualified GroupResource. +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // SchemeBuilder is a new Scheme Builder which registers our API. + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + // AddToScheme is a reference to the Scheme Builder's AddToScheme function. + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &CredentialsBinding{}, + &CredentialsBindingList{}, + ) + + return nil +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/types_credentialsbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/security/types_credentialsbinding.go new file mode 100644 index 000000000..dbc457ef5 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/types_credentialsbinding.go @@ -0,0 +1,51 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package security + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CredentialsBinding represents a binding to credentials in the same or another namespace. +type CredentialsBinding struct { + metav1.TypeMeta + // Standard object metadata. + metav1.ObjectMeta + // Provider defines the provider type of the CredentialsBinding. + // This field is immutable. + Provider CredentialsBindingProvider + // CredentialsRef is a reference to a resource holding the credentials. + // Accepted resources are core/v1.Secret and security.gardener.cloud/v1alpha1.WorkloadIdentity + CredentialsRef corev1.ObjectReference + // Quotas is a list of references to Quota objects in the same or another namespace. + // This field is immutable. + Quotas []corev1.ObjectReference +} + +// GetProviderType gets the type of the provider. +func (cb *CredentialsBinding) GetProviderType() string { + return cb.Provider.Type +} + +// CredentialsBindingProvider defines the provider type of the CredentialsBinding. +type CredentialsBindingProvider struct { + // Type is the type of the provider. + Type string +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CredentialsBindingList is a collection of CredentialsBindings. +type CredentialsBindingList struct { + metav1.TypeMeta + // Standard list object metadata. + metav1.ListMeta + // Items is the list of CredentialsBindings. + Items []CredentialsBinding +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults.go new file mode 100644 index 000000000..1753703ec --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults.go @@ -0,0 +1,13 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime" +) + +func addDefaultingFuncs(scheme *runtime.Scheme) error { + return RegisterDefaults(scheme) +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults_credentialsbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults_credentialsbinding.go new file mode 100644 index 000000000..c392eaf14 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/defaults_credentialsbinding.go @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package v1alpha1 + +// SetDefaults_CredentialsBinding sets default values for CredentialsBinding objects. +func SetDefaults_CredentialsBinding(obj *CredentialsBinding) { + if len(obj.CredentialsRef.Namespace) == 0 { + obj.CredentialsRef.Namespace = obj.Namespace + } + + for i, quota := range obj.Quotas { + if len(quota.Namespace) == 0 { + obj.Quotas[i].Namespace = obj.Namespace + } + } +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/doc.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/doc.go new file mode 100644 index 000000000..6deeba61e --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/doc.go @@ -0,0 +1,16 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +// Package v1alpha1 is the v1alpha1 version of the API. +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/gardener/gardener/pkg/apis/security +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta +// +k8s:protobuf-gen=package + +//go:generate gen-crd-api-reference-docs -api-dir . -config ../../../../hack/api-reference/security-config.json -template-dir ../../../../hack/api-reference/template -out-file ../../../../docs/api-reference/security.md + +// Package v1alpha1 is a version of the API. +// +groupName=security.gardener.cloud +package v1alpha1 diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.pb.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.pb.go new file mode 100644 index 000000000..f1a86929e --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.pb.go @@ -0,0 +1,888 @@ +// SPDX-FileCopyrightText: SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.proto + +package v1alpha1 + +import ( + fmt "fmt" + + io "io" + + proto "github.com/gogo/protobuf/proto" + v11 "k8s.io/api/core/v1" + + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *CredentialsBinding) Reset() { *m = CredentialsBinding{} } +func (*CredentialsBinding) ProtoMessage() {} +func (*CredentialsBinding) Descriptor() ([]byte, []int) { + return fileDescriptor_32adcae6cdc9d73e, []int{0} +} +func (m *CredentialsBinding) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CredentialsBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CredentialsBinding) XXX_Merge(src proto.Message) { + xxx_messageInfo_CredentialsBinding.Merge(m, src) +} +func (m *CredentialsBinding) XXX_Size() int { + return m.Size() +} +func (m *CredentialsBinding) XXX_DiscardUnknown() { + xxx_messageInfo_CredentialsBinding.DiscardUnknown(m) +} + +var xxx_messageInfo_CredentialsBinding proto.InternalMessageInfo + +func (m *CredentialsBindingList) Reset() { *m = CredentialsBindingList{} } +func (*CredentialsBindingList) ProtoMessage() {} +func (*CredentialsBindingList) Descriptor() ([]byte, []int) { + return fileDescriptor_32adcae6cdc9d73e, []int{1} +} +func (m *CredentialsBindingList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CredentialsBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CredentialsBindingList) XXX_Merge(src proto.Message) { + xxx_messageInfo_CredentialsBindingList.Merge(m, src) +} +func (m *CredentialsBindingList) XXX_Size() int { + return m.Size() +} +func (m *CredentialsBindingList) XXX_DiscardUnknown() { + xxx_messageInfo_CredentialsBindingList.DiscardUnknown(m) +} + +var xxx_messageInfo_CredentialsBindingList proto.InternalMessageInfo + +func (m *CredentialsBindingProvider) Reset() { *m = CredentialsBindingProvider{} } +func (*CredentialsBindingProvider) ProtoMessage() {} +func (*CredentialsBindingProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_32adcae6cdc9d73e, []int{2} +} +func (m *CredentialsBindingProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CredentialsBindingProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CredentialsBindingProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_CredentialsBindingProvider.Merge(m, src) +} +func (m *CredentialsBindingProvider) XXX_Size() int { + return m.Size() +} +func (m *CredentialsBindingProvider) XXX_DiscardUnknown() { + xxx_messageInfo_CredentialsBindingProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_CredentialsBindingProvider proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CredentialsBinding)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.security.v1alpha1.CredentialsBinding") + proto.RegisterType((*CredentialsBindingList)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.security.v1alpha1.CredentialsBindingList") + proto.RegisterType((*CredentialsBindingProvider)(nil), "github.aaakk.us.kg.gardener.gardener.pkg.apis.security.v1alpha1.CredentialsBindingProvider") +} + +func init() { + proto.RegisterFile("github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.proto", fileDescriptor_32adcae6cdc9d73e) +} + +var fileDescriptor_32adcae6cdc9d73e = []byte{ + // 495 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0xc1, 0x6e, 0xd3, 0x30, + 0x1c, 0xc6, 0x93, 0xb5, 0x9b, 0x8a, 0x81, 0x0a, 0xe5, 0x30, 0x45, 0x3d, 0x64, 0x55, 0xb9, 0x70, + 0xc1, 0xa1, 0x08, 0x31, 0x4e, 0x1c, 0xb2, 0x03, 0x42, 0x03, 0x01, 0x81, 0x13, 0x02, 0x09, 0xd7, + 0xf9, 0x37, 0x35, 0x5d, 0x62, 0xe3, 0x38, 0x95, 0x7a, 0x83, 0x37, 0xe0, 0x41, 0x78, 0x90, 0x1e, + 0x77, 0xdc, 0x69, 0xa2, 0xe1, 0xc2, 0x63, 0xa0, 0xb8, 0x49, 0x5d, 0x16, 0x26, 0xa6, 0x6a, 0x37, + 0xdb, 0xf1, 0xf7, 0xfb, 0xfe, 0x9f, 0x3f, 0x29, 0xe8, 0x59, 0xcc, 0xd4, 0x24, 0x1f, 0x61, 0xca, + 0x13, 0x3f, 0x26, 0x32, 0x82, 0x14, 0xa4, 0x59, 0x88, 0x69, 0xec, 0x13, 0xc1, 0x32, 0x3f, 0x03, + 0x9a, 0x4b, 0xa6, 0xe6, 0xfe, 0x6c, 0x48, 0x4e, 0xc4, 0x84, 0x0c, 0xfd, 0xb8, 0xbc, 0x40, 0x14, + 0x44, 0x58, 0x48, 0xae, 0xb8, 0x73, 0x68, 0x40, 0xb8, 0xd6, 0x9b, 0x85, 0x98, 0xc6, 0xb8, 0x04, + 0xe1, 0x1a, 0x84, 0x6b, 0x50, 0xef, 0xfe, 0xe6, 0x04, 0x3c, 0xe6, 0xbe, 0xe6, 0x8d, 0xf2, 0xb1, + 0xde, 0xe9, 0x8d, 0x5e, 0xad, 0x7c, 0x7a, 0x83, 0xe9, 0x93, 0x0c, 0x33, 0x5e, 0x8e, 0xe5, 0x53, + 0x2e, 0xc1, 0x9f, 0x35, 0x66, 0xe9, 0x3d, 0x32, 0x77, 0x12, 0x42, 0x27, 0x2c, 0x05, 0x39, 0x37, + 0x59, 0x12, 0x50, 0xe4, 0x5f, 0x2a, 0xff, 0x32, 0x95, 0xcc, 0x53, 0xc5, 0x12, 0x68, 0x08, 0x1e, + 0xff, 0x4f, 0x90, 0xd1, 0x09, 0x24, 0xe4, 0xa2, 0x6e, 0xf0, 0xa3, 0x85, 0x9c, 0x23, 0x09, 0x11, + 0xa4, 0x8a, 0x91, 0x93, 0x2c, 0x60, 0x69, 0xc4, 0xd2, 0xd8, 0xf9, 0x84, 0x3a, 0xe5, 0x68, 0x11, + 0x51, 0xc4, 0xb5, 0xfb, 0xf6, 0xbd, 0x9b, 0x0f, 0x1f, 0xe0, 0x95, 0x03, 0xde, 0x74, 0x30, 0x6f, + 0x59, 0xde, 0xc6, 0xb3, 0x21, 0x7e, 0x35, 0xfa, 0x0c, 0x54, 0xbd, 0x04, 0x45, 0x02, 0x67, 0x71, + 0x7e, 0x60, 0x15, 0xe7, 0x07, 0xc8, 0x9c, 0x85, 0x6b, 0xaa, 0xf3, 0xcd, 0x46, 0x1d, 0x21, 0xf9, + 0x8c, 0x45, 0x20, 0xdd, 0x1d, 0x6d, 0xf1, 0x16, 0x6f, 0xd9, 0x1b, 0x6e, 0x26, 0x78, 0x5d, 0xa1, + 0x83, 0x3b, 0xd5, 0x14, 0x9d, 0xfa, 0x24, 0x5c, 0xdb, 0x3a, 0x14, 0x75, 0xa9, 0x51, 0x86, 0x30, + 0x76, 0x5b, 0x7a, 0x90, 0xbb, 0x1b, 0x59, 0x71, 0x59, 0xac, 0x49, 0x16, 0xc2, 0x18, 0x24, 0xa4, + 0x14, 0x82, 0xfd, 0x0a, 0xdc, 0x3d, 0xfa, 0x0b, 0x11, 0x5e, 0x40, 0x3a, 0xc7, 0x68, 0xef, 0x4b, + 0xce, 0x15, 0xc9, 0xdc, 0x76, 0xbf, 0x75, 0x55, 0x78, 0xb7, 0x82, 0xef, 0xbd, 0xd1, 0xd2, 0xb0, + 0x42, 0x0c, 0x7e, 0xdb, 0x68, 0xbf, 0x19, 0xf6, 0x05, 0xcb, 0x94, 0xf3, 0xa1, 0x51, 0x19, 0xbe, + 0x5a, 0x65, 0xa5, 0x5a, 0x17, 0xb6, 0x7e, 0xaa, 0xfa, 0x64, 0xa3, 0x2e, 0x81, 0x76, 0x99, 0x82, + 0x24, 0x73, 0x77, 0x74, 0x88, 0xe3, 0x6b, 0xac, 0x2a, 0xb8, 0x5d, 0xf9, 0xee, 0x3e, 0x2f, 0x1d, + 0xc2, 0x95, 0xd1, 0xe0, 0x29, 0xea, 0x5d, 0x5e, 0xab, 0xd3, 0x47, 0x6d, 0x35, 0x17, 0xa0, 0x93, + 0xde, 0x08, 0x6e, 0x55, 0x84, 0xf6, 0xbb, 0xb9, 0x80, 0x50, 0x7f, 0x09, 0x3e, 0x2e, 0x96, 0x9e, + 0x75, 0xba, 0xf4, 0xac, 0xb3, 0xa5, 0x67, 0x7d, 0x2d, 0x3c, 0x7b, 0x51, 0x78, 0xf6, 0x69, 0xe1, + 0xd9, 0x67, 0x85, 0x67, 0xff, 0x2c, 0x3c, 0xfb, 0xfb, 0x2f, 0xcf, 0x7a, 0x7f, 0xb8, 0xe5, 0x3f, + 0xe7, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x53, 0x0f, 0x89, 0xaf, 0xad, 0x04, 0x00, 0x00, +} + +func (m *CredentialsBinding) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CredentialsBinding) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CredentialsBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Quotas) > 0 { + for iNdEx := len(m.Quotas) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Quotas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + { + size, err := m.CredentialsRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CredentialsBindingList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CredentialsBindingList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CredentialsBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CredentialsBindingProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CredentialsBindingProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CredentialsBindingProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *CredentialsBinding) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.CredentialsRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Quotas) > 0 { + for _, e := range m.Quotas { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *CredentialsBindingList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *CredentialsBindingProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *CredentialsBinding) String() string { + if this == nil { + return "nil" + } + repeatedStringForQuotas := "[]ObjectReference{" + for _, f := range this.Quotas { + repeatedStringForQuotas += fmt.Sprintf("%v", f) + "," + } + repeatedStringForQuotas += "}" + s := strings.Join([]string{`&CredentialsBinding{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "CredentialsBindingProvider", "CredentialsBindingProvider", 1), `&`, ``, 1) + `,`, + `CredentialsRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.CredentialsRef), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, + `Quotas:` + repeatedStringForQuotas + `,`, + `}`, + }, "") + return s +} +func (this *CredentialsBindingList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]CredentialsBinding{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CredentialsBinding", "CredentialsBinding", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&CredentialsBindingList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *CredentialsBindingProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CredentialsBindingProvider{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *CredentialsBinding) 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: CredentialsBinding: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CredentialsBinding: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CredentialsRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CredentialsRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quotas", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Quotas = append(m.Quotas, v11.ObjectReference{}) + if err := m.Quotas[len(m.Quotas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CredentialsBindingList) 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: CredentialsBindingList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CredentialsBindingList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, CredentialsBinding{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CredentialsBindingProvider) 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: CredentialsBindingProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CredentialsBindingProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", 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 < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenerated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenerated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.proto b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.proto new file mode 100644 index 000000000..1ddcb76e2 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/generated.proto @@ -0,0 +1,54 @@ +// SPDX-FileCopyrightText: SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = "proto2"; + +package github.aaakk.us.kg.gardener.gardener.pkg.apis.security.v1alpha1; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "github.com/gardener/gardener/pkg/apis/security/v1alpha1"; + +// CredentialsBinding represents a binding to credentials in the same or another namespace. +message CredentialsBinding { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Provider defines the provider type of the CredentialsBinding. + // This field is immutable. + optional CredentialsBindingProvider provider = 2; + + // CredentialsRef is a reference to a resource holding the credentials. + // Accepted resources are core/v1.Secret and security.gardener.cloud/v1alpha1.WorkloadIdentity + optional k8s.io.api.core.v1.ObjectReference credentialsRef = 3; + + // Quotas is a list of references to Quota objects in the same or another namespace. + // This field is immutable. + // +optional + repeated k8s.io.api.core.v1.ObjectReference quotas = 4; +} + +// CredentialsBindingList is a collection of CredentialsBindings. +message CredentialsBindingList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of CredentialsBindings. + repeated CredentialsBinding items = 2; +} + +// CredentialsBindingProvider defines the provider type of the CredentialsBinding. +message CredentialsBindingProvider { + // Type is the type of the provider. + optional string type = 1; +} + diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/register.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/register.go new file mode 100644 index 000000000..5a87fa6b4 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/register.go @@ -0,0 +1,47 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the name of the security API group. +const GroupName = "security.gardener.cloud" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind. +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource. +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // SchemeBuilder is a new Scheme Builder which registers our API. + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addDefaultingFuncs) + localSchemeBuilder = &SchemeBuilder + // AddToScheme is a reference to the Scheme Builder's AddToScheme function. + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &CredentialsBinding{}, + &CredentialsBindingList{}, + ) + + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + + return nil +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/types_credentialsbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/types_credentialsbinding.go new file mode 100644 index 000000000..ca4b6a5db --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/types_credentialsbinding.go @@ -0,0 +1,54 @@ +// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package v1alpha1 + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CredentialsBinding represents a binding to credentials in the same or another namespace. +type CredentialsBinding struct { + metav1.TypeMeta `json:",inline"` + // Standard object metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // Provider defines the provider type of the CredentialsBinding. + // This field is immutable. + Provider CredentialsBindingProvider `json:"provider" protobuf:"bytes,2,opt,name=provider"` + // CredentialsRef is a reference to a resource holding the credentials. + // Accepted resources are core/v1.Secret and security.gardener.cloud/v1alpha1.WorkloadIdentity + CredentialsRef corev1.ObjectReference `json:"credentialsRef" protobuf:"bytes,3,name=credentialsRef"` + // Quotas is a list of references to Quota objects in the same or another namespace. + // This field is immutable. + // +optional + Quotas []corev1.ObjectReference `json:"quotas,omitempty" protobuf:"bytes,4,rep,name=quotas"` +} + +// GetProviderType gets the type of the provider. +func (cb *CredentialsBinding) GetProviderType() string { + return cb.Provider.Type +} + +// CredentialsBindingProvider defines the provider type of the CredentialsBinding. +type CredentialsBindingProvider struct { + // Type is the type of the provider. + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CredentialsBindingList is a collection of CredentialsBindings. +type CredentialsBindingList struct { + metav1.TypeMeta `json:",inline"` + // Standard list object metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // Items is the list of CredentialsBindings. + Items []CredentialsBinding `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.conversion.go new file mode 100644 index 000000000..4a41a6532 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.conversion.go @@ -0,0 +1,131 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// SPDX-FileCopyrightText: SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + unsafe "unsafe" + + security "github.com/gardener/gardener/pkg/apis/security" + v1 "k8s.io/api/core/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*CredentialsBinding)(nil), (*security.CredentialsBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CredentialsBinding_To_security_CredentialsBinding(a.(*CredentialsBinding), b.(*security.CredentialsBinding), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*security.CredentialsBinding)(nil), (*CredentialsBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_security_CredentialsBinding_To_v1alpha1_CredentialsBinding(a.(*security.CredentialsBinding), b.(*CredentialsBinding), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CredentialsBindingList)(nil), (*security.CredentialsBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CredentialsBindingList_To_security_CredentialsBindingList(a.(*CredentialsBindingList), b.(*security.CredentialsBindingList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*security.CredentialsBindingList)(nil), (*CredentialsBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_security_CredentialsBindingList_To_v1alpha1_CredentialsBindingList(a.(*security.CredentialsBindingList), b.(*CredentialsBindingList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CredentialsBindingProvider)(nil), (*security.CredentialsBindingProvider)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CredentialsBindingProvider_To_security_CredentialsBindingProvider(a.(*CredentialsBindingProvider), b.(*security.CredentialsBindingProvider), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*security.CredentialsBindingProvider)(nil), (*CredentialsBindingProvider)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_security_CredentialsBindingProvider_To_v1alpha1_CredentialsBindingProvider(a.(*security.CredentialsBindingProvider), b.(*CredentialsBindingProvider), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1alpha1_CredentialsBinding_To_security_CredentialsBinding(in *CredentialsBinding, out *security.CredentialsBinding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha1_CredentialsBindingProvider_To_security_CredentialsBindingProvider(&in.Provider, &out.Provider, s); err != nil { + return err + } + out.CredentialsRef = in.CredentialsRef + out.Quotas = *(*[]v1.ObjectReference)(unsafe.Pointer(&in.Quotas)) + return nil +} + +// Convert_v1alpha1_CredentialsBinding_To_security_CredentialsBinding is an autogenerated conversion function. +func Convert_v1alpha1_CredentialsBinding_To_security_CredentialsBinding(in *CredentialsBinding, out *security.CredentialsBinding, s conversion.Scope) error { + return autoConvert_v1alpha1_CredentialsBinding_To_security_CredentialsBinding(in, out, s) +} + +func autoConvert_security_CredentialsBinding_To_v1alpha1_CredentialsBinding(in *security.CredentialsBinding, out *CredentialsBinding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_security_CredentialsBindingProvider_To_v1alpha1_CredentialsBindingProvider(&in.Provider, &out.Provider, s); err != nil { + return err + } + out.CredentialsRef = in.CredentialsRef + out.Quotas = *(*[]v1.ObjectReference)(unsafe.Pointer(&in.Quotas)) + return nil +} + +// Convert_security_CredentialsBinding_To_v1alpha1_CredentialsBinding is an autogenerated conversion function. +func Convert_security_CredentialsBinding_To_v1alpha1_CredentialsBinding(in *security.CredentialsBinding, out *CredentialsBinding, s conversion.Scope) error { + return autoConvert_security_CredentialsBinding_To_v1alpha1_CredentialsBinding(in, out, s) +} + +func autoConvert_v1alpha1_CredentialsBindingList_To_security_CredentialsBindingList(in *CredentialsBindingList, out *security.CredentialsBindingList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]security.CredentialsBinding)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha1_CredentialsBindingList_To_security_CredentialsBindingList is an autogenerated conversion function. +func Convert_v1alpha1_CredentialsBindingList_To_security_CredentialsBindingList(in *CredentialsBindingList, out *security.CredentialsBindingList, s conversion.Scope) error { + return autoConvert_v1alpha1_CredentialsBindingList_To_security_CredentialsBindingList(in, out, s) +} + +func autoConvert_security_CredentialsBindingList_To_v1alpha1_CredentialsBindingList(in *security.CredentialsBindingList, out *CredentialsBindingList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]CredentialsBinding)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_security_CredentialsBindingList_To_v1alpha1_CredentialsBindingList is an autogenerated conversion function. +func Convert_security_CredentialsBindingList_To_v1alpha1_CredentialsBindingList(in *security.CredentialsBindingList, out *CredentialsBindingList, s conversion.Scope) error { + return autoConvert_security_CredentialsBindingList_To_v1alpha1_CredentialsBindingList(in, out, s) +} + +func autoConvert_v1alpha1_CredentialsBindingProvider_To_security_CredentialsBindingProvider(in *CredentialsBindingProvider, out *security.CredentialsBindingProvider, s conversion.Scope) error { + out.Type = in.Type + return nil +} + +// Convert_v1alpha1_CredentialsBindingProvider_To_security_CredentialsBindingProvider is an autogenerated conversion function. +func Convert_v1alpha1_CredentialsBindingProvider_To_security_CredentialsBindingProvider(in *CredentialsBindingProvider, out *security.CredentialsBindingProvider, s conversion.Scope) error { + return autoConvert_v1alpha1_CredentialsBindingProvider_To_security_CredentialsBindingProvider(in, out, s) +} + +func autoConvert_security_CredentialsBindingProvider_To_v1alpha1_CredentialsBindingProvider(in *security.CredentialsBindingProvider, out *CredentialsBindingProvider, s conversion.Scope) error { + out.Type = in.Type + return nil +} + +// Convert_security_CredentialsBindingProvider_To_v1alpha1_CredentialsBindingProvider is an autogenerated conversion function. +func Convert_security_CredentialsBindingProvider_To_v1alpha1_CredentialsBindingProvider(in *security.CredentialsBindingProvider, out *CredentialsBindingProvider, s conversion.Scope) error { + return autoConvert_security_CredentialsBindingProvider_To_v1alpha1_CredentialsBindingProvider(in, out, s) +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 000000000..120c17fbc --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,97 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// SPDX-FileCopyrightText: SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsBinding) DeepCopyInto(out *CredentialsBinding) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Provider = in.Provider + out.CredentialsRef = in.CredentialsRef + if in.Quotas != nil { + in, out := &in.Quotas, &out.Quotas + *out = make([]v1.ObjectReference, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsBinding. +func (in *CredentialsBinding) DeepCopy() *CredentialsBinding { + if in == nil { + return nil + } + out := new(CredentialsBinding) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CredentialsBinding) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsBindingList) DeepCopyInto(out *CredentialsBindingList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CredentialsBinding, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsBindingList. +func (in *CredentialsBindingList) DeepCopy() *CredentialsBindingList { + if in == nil { + return nil + } + out := new(CredentialsBindingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CredentialsBindingList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsBindingProvider) DeepCopyInto(out *CredentialsBindingProvider) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsBindingProvider. +func (in *CredentialsBindingProvider) DeepCopy() *CredentialsBindingProvider { + if in == nil { + return nil + } + out := new(CredentialsBindingProvider) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.defaults.go b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.defaults.go new file mode 100644 index 000000000..fa5a96a2e --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/v1alpha1/zz_generated.defaults.go @@ -0,0 +1,34 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// SPDX-FileCopyrightText: SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by defaulter-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + scheme.AddTypeDefaultingFunc(&CredentialsBinding{}, func(obj interface{}) { SetObjectDefaults_CredentialsBinding(obj.(*CredentialsBinding)) }) + scheme.AddTypeDefaultingFunc(&CredentialsBindingList{}, func(obj interface{}) { SetObjectDefaults_CredentialsBindingList(obj.(*CredentialsBindingList)) }) + return nil +} + +func SetObjectDefaults_CredentialsBinding(in *CredentialsBinding) { + SetDefaults_CredentialsBinding(in) +} + +func SetObjectDefaults_CredentialsBindingList(in *CredentialsBindingList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_CredentialsBinding(a) + } +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/security/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/security/zz_generated.deepcopy.go new file mode 100644 index 000000000..09f4dc90f --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/security/zz_generated.deepcopy.go @@ -0,0 +1,97 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// SPDX-FileCopyrightText: SAP SE or an SAP affiliate company and Gardener contributors +// +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package security + +import ( + v1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsBinding) DeepCopyInto(out *CredentialsBinding) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Provider = in.Provider + out.CredentialsRef = in.CredentialsRef + if in.Quotas != nil { + in, out := &in.Quotas, &out.Quotas + *out = make([]v1.ObjectReference, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsBinding. +func (in *CredentialsBinding) DeepCopy() *CredentialsBinding { + if in == nil { + return nil + } + out := new(CredentialsBinding) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CredentialsBinding) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsBindingList) DeepCopyInto(out *CredentialsBindingList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CredentialsBinding, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsBindingList. +func (in *CredentialsBindingList) DeepCopy() *CredentialsBindingList { + if in == nil { + return nil + } + out := new(CredentialsBindingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CredentialsBindingList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsBindingProvider) DeepCopyInto(out *CredentialsBindingProvider) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsBindingProvider. +func (in *CredentialsBindingProvider) DeepCopy() *CredentialsBindingProvider { + if in == nil { + return nil + } + out := new(CredentialsBindingProvider) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/client.go b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/client.go index bdf1b038d..f58e8bb33 100644 --- a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/client.go +++ b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/client.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/apiutil" gardencoreinstall "github.com/gardener/gardener/pkg/apis/core/install" + securityinstall "github.com/gardener/gardener/pkg/apis/security/install" seedmanagementinstall "github.com/gardener/gardener/pkg/apis/seedmanagement/install" settingsinstall "github.com/gardener/gardener/pkg/apis/settings/install" ) @@ -51,6 +52,7 @@ func init() { gardencoreinstall.AddToScheme, seedmanagementinstall.AddToScheme, settingsinstall.AddToScheme, + securityinstall.AddToScheme, ) utilruntime.Must(apiutil.AddToProtobufScheme(protobufSchemeBuilder.AddToScheme)) diff --git a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go index eeefa0a32..096884cbb 100644 --- a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go +++ b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go @@ -39,6 +39,7 @@ import ( operationsinstall "github.com/gardener/gardener/pkg/apis/operations/install" operatorv1alpha1 "github.com/gardener/gardener/pkg/apis/operator/v1alpha1" resourcesv1alpha1 "github.com/gardener/gardener/pkg/apis/resources/v1alpha1" + securityinstall "github.com/gardener/gardener/pkg/apis/security/install" seedmanagementinstall "github.com/gardener/gardener/pkg/apis/seedmanagement/install" settingsinstall "github.com/gardener/gardener/pkg/apis/settings/install" "github.com/gardener/gardener/pkg/chartrenderer" @@ -94,6 +95,7 @@ var ( settingsinstall.AddToScheme, operationsinstall.AddToScheme, apiregistrationscheme.AddToScheme, + securityinstall.AddToScheme, ) seedSchemeBuilder = runtime.NewSchemeBuilder( diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go index 11aaf032f..3a38e7404 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go @@ -546,8 +546,6 @@ type RemoteWriteMonitoringConfig struct { URL string // Keep contains a list of metrics that will be remote written Keep []string - // QueueConfig contains the queue_config for prometheus remote write. - QueueConfig *string } // NodeToleration contains information about node toleration options. diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go index ae3d88dd7..69d294976 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go @@ -663,9 +663,6 @@ type RemoteWriteMonitoringConfig struct { // Keep contains a list of metrics that will be remote written // +optional Keep []string `json:"keep,omitempty"` - // QueueConfig contains the queue_config for prometheus remote write. - // +optional - QueueConfig *string `json:"queueConfig,omitempty"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go index 72b50aba9..cc105bca0 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go @@ -1211,7 +1211,6 @@ func Convert_config_NodeToleration_To_v1alpha1_NodeToleration(in *config.NodeTol func autoConvert_v1alpha1_RemoteWriteMonitoringConfig_To_config_RemoteWriteMonitoringConfig(in *RemoteWriteMonitoringConfig, out *config.RemoteWriteMonitoringConfig, s conversion.Scope) error { out.URL = in.URL out.Keep = *(*[]string)(unsafe.Pointer(&in.Keep)) - out.QueueConfig = (*string)(unsafe.Pointer(in.QueueConfig)) return nil } @@ -1223,7 +1222,6 @@ func Convert_v1alpha1_RemoteWriteMonitoringConfig_To_config_RemoteWriteMonitorin func autoConvert_config_RemoteWriteMonitoringConfig_To_v1alpha1_RemoteWriteMonitoringConfig(in *config.RemoteWriteMonitoringConfig, out *RemoteWriteMonitoringConfig, s conversion.Scope) error { out.URL = in.URL out.Keep = *(*[]string)(unsafe.Pointer(&in.Keep)) - out.QueueConfig = (*string)(unsafe.Pointer(in.QueueConfig)) return nil } diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go index d872d06f6..6a32daf3c 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go @@ -827,11 +827,6 @@ func (in *RemoteWriteMonitoringConfig) DeepCopyInto(out *RemoteWriteMonitoringCo *out = make([]string, len(*in)) copy(*out, *in) } - if in.QueueConfig != nil { - in, out := &in.QueueConfig, &out.QueueConfig - *out = new(string) - **out = **in - } return } diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go index 14e580d8c..2663b3113 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go @@ -827,11 +827,6 @@ func (in *RemoteWriteMonitoringConfig) DeepCopyInto(out *RemoteWriteMonitoringCo *out = make([]string, len(*in)) copy(*out, *in) } - if in.QueueConfig != nil { - in, out := &in.QueueConfig, &out.QueueConfig - *out = new(string) - **out = **in - } return } diff --git a/vendor/github.com/gardener/gardener/pkg/utils/gardener/deletion_confirmation.go b/vendor/github.com/gardener/gardener/pkg/utils/gardener/deletion_confirmation.go index fb009c319..a96082666 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/gardener/deletion_confirmation.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/gardener/deletion_confirmation.go @@ -17,9 +17,6 @@ import ( ) const ( - // ConfirmationDeletion is an annotation on a Shoot and Project resources whose value must be set to "true" in order to - // allow deleting the resource (if the annotation is not set any DELETE request will be denied). - ConfirmationDeletion = "confirmation.gardener.cloud/deletion" // DeletionProtected is a label on CustomResourceDefinitions indicating that the deletion is protected, i.e. // it must be confirmed with the `confirmation.gardener.cloud/deletion=true` annotation before a `DELETE` call // is accepted. @@ -36,7 +33,7 @@ func CheckIfDeletionIsConfirmed(obj client.Object) error { return confirmationAnnotationRequiredError() } - value := annotations[ConfirmationDeletion] + value := annotations[v1beta1constants.ConfirmationDeletion] if confirmed, err := strconv.ParseBool(value); err != nil || !confirmed { return confirmationAnnotationRequiredError() } @@ -47,11 +44,11 @@ func CheckIfDeletionIsConfirmed(obj client.Object) error { // request. func ConfirmDeletion(ctx context.Context, w client.Writer, obj client.Object) error { patch := client.MergeFrom(obj.DeepCopyObject().(client.Object)) - kubernetesutils.SetMetaDataAnnotation(obj, ConfirmationDeletion, "true") + kubernetesutils.SetMetaDataAnnotation(obj, v1beta1constants.ConfirmationDeletion, "true") kubernetesutils.SetMetaDataAnnotation(obj, v1beta1constants.GardenerTimestamp, TimeNow().UTC().Format(time.RFC3339Nano)) return w.Patch(ctx, obj, patch) } func confirmationAnnotationRequiredError() error { - return fmt.Errorf("must have a %q annotation to delete", ConfirmationDeletion) + return fmt.Errorf("must have a %q annotation to delete", v1beta1constants.ConfirmationDeletion) } diff --git a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/controllers.go b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/controllers.go index 25d6dda95..467c8447a 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/controllers.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/controllers.go @@ -11,6 +11,12 @@ var APIGroupControllerMap = map[string]map[string]versionutils.VersionRange{ "internal/v1alpha1": { "storage-version-gc": {}, }, + "admissionregistration/v1beta1": { + "validatingadmissionpolicy-status-controller": {AddedInVersion: "1.28", RemovedInVersion: "1.30"}, + }, + "admissionregistration/v1": { + "validatingadmissionpolicy-status-controller": {AddedInVersion: "1.30"}, + }, "apps/v1": { "daemonset": {}, "deployment": {}, @@ -57,6 +63,9 @@ var APIGroupControllerMap = map[string]map[string]versionutils.VersionRange{ "extensions/v1beta1": { "disruption": {}, }, + "networking/v1alpha1": { + "service-cidr-controller": {AddedInVersion: "1.29"}, + }, "policy/v1": { "disruption": {}, }, @@ -66,9 +75,13 @@ var APIGroupControllerMap = map[string]map[string]versionutils.VersionRange{ "resource/v1alpha2": { "resource-claim-controller": {AddedInVersion: "1.27"}, }, + "storagemigration/v1alpha1": { + "storage-version-migrator-controller": {AddedInVersion: "1.30"}, + }, "v1": { "attachdetach": {}, "bootstrapsigner": {}, + "cloud-node": {}, "cloud-node-lifecycle": {}, "cronjob": {}, "csrapproving": {}, @@ -80,7 +93,7 @@ var APIGroupControllerMap = map[string]map[string]versionutils.VersionRange{ "endpointslice": {}, "endpointslicemirroring": {}, "ephemeral-volume": {}, - "garbagecollector": {}, + "garbagecollector": {RemovedInVersion: "1.30"}, "horizontalpodautoscaling": {}, "job": {}, "legacy-service-account-token-cleaner": {AddedInVersion: "1.28"}, @@ -98,10 +111,11 @@ var APIGroupControllerMap = map[string]map[string]versionutils.VersionRange{ "root-ca-cert-publisher": {}, "route": {}, "service": {}, - "service-cidr": {AddedInVersion: "1.29"}, + "service-cidr-controller": {AddedInVersion: "1.29"}, "serviceaccount": {}, "serviceaccount-token": {}, "statefulset": {}, + "taint-eviction-controller": {AddedInVersion: "1.29"}, "tokencleaner": {}, "ttl": {}, "ttl-after-finished": {}, diff --git a/vendor/github.com/gardener/gardener/pkg/utils/validation/kubernetesversion/version.go b/vendor/github.com/gardener/gardener/pkg/utils/validation/kubernetesversion/version.go index 6b46e02d4..225526711 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/validation/kubernetesversion/version.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/validation/kubernetesversion/version.go @@ -18,6 +18,7 @@ var SupportedVersions = []string{ "1.27", "1.28", "1.29", + "1.30", } // CheckIfSupported checks if the provided version is part of the supported Kubernetes versions list. diff --git a/vendor/github.com/gardener/gardener/pkg/utils/version/version.go b/vendor/github.com/gardener/gardener/pkg/utils/version/version.go index e279ade6b..aecf263ce 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/version/version.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/version/version.go @@ -23,10 +23,12 @@ var ( ConstraintK8sLess127 *semver.Constraints // ConstraintK8sGreaterEqual128 is a version constraint for versions >= 1.28. ConstraintK8sGreaterEqual128 *semver.Constraints - // ConstraintK8sEqual128 is a version constraint for versions == 1.28. - ConstraintK8sEqual128 *semver.Constraints // ConstraintK8sGreaterEqual129 is a version constraint for versions >= 1.29. ConstraintK8sGreaterEqual129 *semver.Constraints + // ConstraintK8sLess130 is a version constraint for versions < 1.30. + ConstraintK8sLess130 *semver.Constraints + // ConstraintK8sGreaterEqual130 is a version constraint for versions >= 1.30. + ConstraintK8sGreaterEqual130 *semver.Constraints ) func init() { @@ -41,10 +43,12 @@ func init() { utilruntime.Must(err) ConstraintK8sGreaterEqual128, err = semver.NewConstraint(">= 1.28-0") utilruntime.Must(err) - ConstraintK8sEqual128, err = semver.NewConstraint("~ 1.28.x-0") - utilruntime.Must(err) ConstraintK8sGreaterEqual129, err = semver.NewConstraint(">= 1.29-0") utilruntime.Must(err) + ConstraintK8sLess130, err = semver.NewConstraint("< 1.30-0") + utilruntime.Must(err) + ConstraintK8sGreaterEqual130, err = semver.NewConstraint(">= 1.30-0") + utilruntime.Must(err) } // CompareVersions returns true if the constraint compared by to diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go index 34bf089d0..9486c5986 100644 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ b/vendor/golang.org/x/crypto/ssh/client_auth.go @@ -404,10 +404,10 @@ func validateKey(key PublicKey, algo string, user string, c packetConn) (bool, e return false, err } - return confirmKeyAck(key, algo, c) + return confirmKeyAck(key, c) } -func confirmKeyAck(key PublicKey, algo string, c packetConn) (bool, error) { +func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { pubKey := key.Marshal() for { @@ -425,7 +425,15 @@ func confirmKeyAck(key PublicKey, algo string, c packetConn) (bool, error) { if err := Unmarshal(packet, &msg); err != nil { return false, err } - if msg.Algo != algo || !bytes.Equal(msg.PubKey, pubKey) { + // According to RFC 4252 Section 7 the algorithm in + // SSH_MSG_USERAUTH_PK_OK should match that of the request but some + // servers send the key type instead. OpenSSH allows any algorithm + // that matches the public key, so we do the same. + // https://github.com/openssh/openssh-portable/blob/86bdd385/sshconnect2.c#L709 + if !contains(algorithmsForKeyFormat(key.Type()), msg.Algo) { + return false, nil + } + if !bytes.Equal(msg.PubKey, pubKey) { return false, nil } return true, nil diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go index 2466ae3d9..3a7e5ab17 100644 --- a/vendor/golang.org/x/net/html/doc.go +++ b/vendor/golang.org/x/net/html/doc.go @@ -104,7 +104,7 @@ tokenization, and tokenization and tree construction stages of the WHATWG HTML parsing specification respectively. While the tokenizer parses and normalizes individual HTML tokens, only the parser constructs the DOM tree from the tokenized HTML, as described in the tree construction stage of the -specification, dynamically modifying or extending the docuemnt's DOM tree. +specification, dynamically modifying or extending the document's DOM tree. If your use case requires semantically well-formed HTML documents, as defined by the WHATWG specification, the parser should be used rather than the tokenizer. diff --git a/vendor/golang.org/x/net/http/httpguts/httplex.go b/vendor/golang.org/x/net/http/httpguts/httplex.go index 6e071e852..9b4de9401 100644 --- a/vendor/golang.org/x/net/http/httpguts/httplex.go +++ b/vendor/golang.org/x/net/http/httpguts/httplex.go @@ -12,7 +12,7 @@ import ( "golang.org/x/net/idna" ) -var isTokenTable = [127]bool{ +var isTokenTable = [256]bool{ '!': true, '#': true, '$': true, @@ -93,12 +93,7 @@ var isTokenTable = [127]bool{ } func IsTokenRune(r rune) bool { - i := int(r) - return i < len(isTokenTable) && isTokenTable[i] -} - -func isNotToken(r rune) bool { - return !IsTokenRune(r) + return r < utf8.RuneSelf && isTokenTable[byte(r)] } // HeaderValuesContainsToken reports whether any string in values @@ -202,8 +197,8 @@ func ValidHeaderFieldName(v string) bool { if len(v) == 0 { return false } - for _, r := range v { - if !IsTokenRune(r) { + for i := 0; i < len(v); i++ { + if !isTokenTable[v[i]] { return false } } diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index 43557ab7e..105c3b279 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -490,6 +490,9 @@ func terminalReadFrameError(err error) bool { // returned error is ErrFrameTooLarge. Other errors may be of type // ConnectionError, StreamError, or anything else from the underlying // reader. +// +// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID +// indicates the stream responsible for the error. func (fr *Framer) ReadFrame() (Frame, error) { fr.errDetail = nil if fr.lastFrame != nil { @@ -1521,7 +1524,7 @@ func (fr *Framer) maxHeaderStringLen() int { // readMetaFrame returns 0 or more CONTINUATION frames from fr and // merge them into the provided hf and returns a MetaHeadersFrame // with the decoded hpack values. -func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { +func (fr *Framer) readMetaFrame(hf *HeadersFrame) (Frame, error) { if fr.AllowIllegalReads { return nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders") } @@ -1592,7 +1595,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { } // It would be nice to send a RST_STREAM before sending the GOAWAY, // but the structure of the server's frame writer makes this difficult. - return nil, ConnectionError(ErrCodeProtocol) + return mh, ConnectionError(ErrCodeProtocol) } // Also close the connection after any CONTINUATION frame following an @@ -1604,11 +1607,11 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { } // It would be nice to send a RST_STREAM before sending the GOAWAY, // but the structure of the server's frame writer makes this difficult. - return nil, ConnectionError(ErrCodeProtocol) + return mh, ConnectionError(ErrCodeProtocol) } if _, err := hdec.Write(frag); err != nil { - return nil, ConnectionError(ErrCodeCompression) + return mh, ConnectionError(ErrCodeCompression) } if hc.HeadersEnded() { @@ -1625,7 +1628,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { mh.HeadersFrame.invalidate() if err := hdec.Close(); err != nil { - return nil, ConnectionError(ErrCodeCompression) + return mh, ConnectionError(ErrCodeCompression) } if invalid != nil { fr.errDetail = invalid diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index ce2e8b40e..c5d081081 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -732,11 +732,7 @@ func isClosedConnError(err error) bool { return false } - // TODO: remove this string search and be more like the Windows - // case below. That might involve modifying the standard library - // to return better error types. - str := err.Error() - if strings.Contains(str, "use of closed network connection") { + if errors.Is(err, net.ErrClosed) { return true } @@ -1482,6 +1478,11 @@ func (sc *serverConn) processFrameFromReader(res readFrameResult) bool { sc.goAway(ErrCodeFlowControl) return true case ConnectionError: + if res.f != nil { + if id := res.f.Header().StreamID; id > sc.maxClientStreamID { + sc.maxClientStreamID = id + } + } sc.logf("http2: server connection error from %v: %v", sc.conn.RemoteAddr(), ev) sc.goAway(ErrCode(ev)) return true // goAway will handle shutdown diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index ce375c8c7..2fa49490c 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -936,7 +936,20 @@ func (cc *ClientConn) setGoAway(f *GoAwayFrame) { } last := f.LastStreamID for streamID, cs := range cc.streams { - if streamID > last { + if streamID <= last { + // The server's GOAWAY indicates that it received this stream. + // It will either finish processing it, or close the connection + // without doing so. Either way, leave the stream alone for now. + continue + } + if streamID == 1 && cc.goAway.ErrCode != ErrCodeNo { + // Don't retry the first stream on a connection if we get a non-NO error. + // If the server is sending an error on a new connection, + // retrying the request on a new one probably isn't going to work. + cs.abortStreamLocked(fmt.Errorf("http2: Transport received GOAWAY from server ErrCode:%v", cc.goAway.ErrCode)) + } else { + // Aborting the stream with errClentConnGotGoAway indicates that + // the request should be retried on a new connection. cs.abortStreamLocked(errClientConnGotGoAway) } } diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 4756ad5f7..8fa707aa4 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -103,6 +103,7 @@ var ARM64 struct { HasASIMDDP bool // Advanced SIMD double precision instruction set HasSHA512 bool // SHA512 hardware implementation HasSVE bool // Scalable Vector Extensions + HasSVE2 bool // Scalable Vector Extensions 2 HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32 _ CacheLinePad } diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go index f3eb993bf..0e27a21e1 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.go @@ -28,6 +28,7 @@ func initOptions() { {Name: "sm3", Feature: &ARM64.HasSM3}, {Name: "sm4", Feature: &ARM64.HasSM4}, {Name: "sve", Feature: &ARM64.HasSVE}, + {Name: "sve2", Feature: &ARM64.HasSVE2}, {Name: "crc32", Feature: &ARM64.HasCRC32}, {Name: "atomics", Feature: &ARM64.HasATOMICS}, {Name: "asimdhp", Feature: &ARM64.HasASIMDHP}, @@ -164,6 +165,15 @@ func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { switch extractBits(pfr0, 32, 35) { case 1: ARM64.HasSVE = true + + parseARM64SVERegister(getzfr0()) + } +} + +func parseARM64SVERegister(zfr0 uint64) { + switch extractBits(zfr0, 0, 3) { + case 1: + ARM64.HasSVE2 = true } } diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_arm64.s index fcb9a3888..22cc99844 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.s +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.s @@ -29,3 +29,11 @@ TEXT ·getpfr0(SB),NOSPLIT,$0-8 WORD $0xd5380400 MOVD R0, ret+0(FP) RET + +// func getzfr0() uint64 +TEXT ·getzfr0(SB),NOSPLIT,$0-8 + // get SVE Feature Register 0 into x0 + // mrs x0, ID_AA64ZFR0_EL1 = d5380480 + WORD $0xd5380480 + MOVD R0, ret+0(FP) + RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go index a8acd3e32..6ac6e1efb 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go @@ -9,3 +9,4 @@ package cpu func getisar0() uint64 func getisar1() uint64 func getpfr0() uint64 +func getzfr0() uint64 diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go index a968b80fa..3d386d0fc 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go @@ -35,6 +35,8 @@ const ( hwcap_SHA512 = 1 << 21 hwcap_SVE = 1 << 22 hwcap_ASIMDFHM = 1 << 23 + + hwcap2_SVE2 = 1 << 1 ) // linuxKernelCanEmulateCPUID reports whether we're running @@ -104,6 +106,9 @@ func doinit() { ARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512) ARM64.HasSVE = isSet(hwCap, hwcap_SVE) ARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM) + + // HWCAP2 feature bits + ARM64.HasSVE2 = isSet(hwCap2, hwcap2_SVE2) } func isSet(hwc uint, value uint) bool { diff --git a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s index 2f67ba86d..813dfad7d 100644 --- a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +++ b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s @@ -9,9 +9,11 @@ #define PSALAA 1208(R0) #define GTAB64(x) 80(x) #define LCA64(x) 88(x) +#define SAVSTACK_ASYNC(x) 336(x) // in the LCA #define CAA(x) 8(x) -#define EDCHPXV(x) 1016(x) // in the CAA -#define SAVSTACK_ASYNC(x) 336(x) // in the LCA +#define CEECAATHDID(x) 976(x) // in the CAA +#define EDCHPXV(x) 1016(x) // in the CAA +#define GOCB(x) 1104(x) // in the CAA // SS_*, where x=SAVSTACK_ASYNC #define SS_LE(x) 0(x) @@ -19,405 +21,362 @@ #define SS_ERRNO(x) 16(x) #define SS_ERRNOJR(x) 20(x) -#define LE_CALL BYTE $0x0D; BYTE $0x76; // BL R7, R6 +// Function Descriptor Offsets +#define __errno 0x156*16 +#define __err2ad 0x16C*16 -TEXT ·clearErrno(SB),NOSPLIT,$0-0 - BL addrerrno<>(SB) - MOVD $0, 0(R3) +// Call Instructions +#define LE_CALL BYTE $0x0D; BYTE $0x76 // BL R7, R6 +#define SVC_LOAD BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD +#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE + +DATA zosLibVec<>(SB)/8, $0 +GLOBL zosLibVec<>(SB), NOPTR, $8 + +TEXT ·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD CAA(R8), R8 + MOVD EDCHPXV(R8), R8 + MOVD R8, zosLibVec<>(SB) + RET + +TEXT ·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 + MOVD zosLibVec<>(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·clearErrno(SB), NOSPLIT, $0-0 + BL addrerrno<>(SB) + MOVD $0, 0(R3) RET // Returns the address of errno in R3. -TEXT addrerrno<>(SB),NOSPLIT|NOFRAME,$0-0 +TEXT addrerrno<>(SB), NOSPLIT|NOFRAME, $0-0 // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 // Get __errno FuncDesc. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - ADD $(0x156*16), R9 - LMG 0(R9), R5, R6 + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + ADD $(__errno), R9 + LMG 0(R9), R5, R6 // Switch to saved LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) // Call __errno function. LE_CALL NOPH // Switch back to Go stack. - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. RET -TEXT ·syscall_syscall(SB),NOSPLIT,$0-56 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 +// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +TEXT ·svcCall(SB), NOSPLIT, $0 + BL runtime·save_g(SB) // Save g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD R15, 0(R9) - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 + MOVD argv+8(FP), R1 // Move function arguments into registers + MOVD dsa+16(FP), g + MOVD fnptr+0(FP), R15 - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 + BYTE $0x0D // Branch to function + BYTE $0xEF - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) + BL runtime·load_g(SB) // Restore g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R15 - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+32(FP) - MOVD R0, r2+40(FP) - MOVD R0, err+48(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) -done: - BL runtime·exitsyscall(SB) RET -TEXT ·syscall_rawsyscall(SB),NOSPLIT,$0-56 - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 +// func svcLoad(name *byte) unsafe.Pointer +TEXT ·svcLoad(SB), NOSPLIT, $0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD $0x80000000, R1 + MOVD $0, R15 + SVC_LOAD + MOVW R15, R3 // Save return code from SVC + MOVD R2, R15 // Restore go stack pointer + CMP R3, $0 // Check SVC return code + BNE error + + MOVD $-2, R3 // Reset last bit of entry point to zero + AND R0, R3 + MOVD R3, ret+8(FP) // Return entry point returned by SVC + CMP R0, R3 // Check if last bit of entry point was set + BNE done + + MOVD R15, R2 // Save go stack pointer + MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) + SVC_DELETE + MOVD R2, R15 // Restore go stack pointer - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) +error: + MOVD $0, ret+8(FP) // Return 0 on failure - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+32(FP) - MOVD R0, r2+40(FP) - MOVD R0, err+48(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) done: + XOR R0, R0 // Reset r0 to 0 RET -TEXT ·syscall_syscall6(SB),NOSPLIT,$0-80 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 +// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 +TEXT ·svcUnload(SB), NOSPLIT, $0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD fnptr+8(FP), R15 + SVC_DELETE + XOR R0, R0 // Reset r0 to 0 + MOVD R15, R1 // Save SVC return code + MOVD R2, R15 // Restore go stack pointer + MOVD R1, ret+16(FP) // Return SVC return code + RET +// func gettid() uint64 +TEXT ·gettid(SB), NOSPLIT, $0 // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 + // Get CEECAATHDID + MOVD CAA(R8), R9 + MOVD CEECAATHDID(R9), R9 + MOVD R9, ret+0(FP) - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - - // Call function. - LE_CALL - NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+56(FP) - MOVD R0, r2+64(FP) - MOVD R0, err+72(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+72(FP) -done: - BL runtime·exitsyscall(SB) RET -TEXT ·syscall_rawsyscall6(SB),NOSPLIT,$0-80 - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 +// +// Call LE function, if the return is -1 +// errno and errno2 is retrieved +// +TEXT ·CallLeFuncWithErr(SB), NOSPLIT, $0 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD CAA(R8), R9 + MOVD g, GOCB(R9) // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - - // Call function. - LE_CALL + MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address + MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer + + MOVD parms_base+8(FP), R7 // R7 -> argument array + MOVD parms_len+16(FP), R8 // R8 number of arguments + + // arg 1 ---> R1 + CMP R8, $0 + BEQ docall + SUB $1, R8 + MOVD 0(R7), R1 + + // arg 2 ---> R2 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R2 + + // arg 3 --> R3 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R3 + + CMP R8, $0 + BEQ docall + MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument + +repeat: + ADD $8, R7 + MOVD 0(R7), R0 // advance arg pointer by 8 byte + ADD $8, R6 // advance LE argument address by 8 byte + MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame + SUB $1, R8 + CMP R8, $0 + BNE repeat + +docall: + MOVD funcdesc+0(FP), R8 // R8-> function descriptor + LMG 0(R8), R5, R6 + MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC + LE_CALL // balr R7, R6 (return #1) + NOPH + MOVD R3, ret+32(FP) + CMP R3, $-1 // compare result to -1 + BNE done + + // retrieve errno and errno2 + MOVD zosLibVec<>(SB), R8 + ADD $(__errno), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __errno (return #3) NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+56(FP) - MOVD R0, r2+64(FP) - MOVD R0, err+72(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL ·rrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+72(FP) + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) + MOVD zosLibVec<>(SB), R8 + ADD $(__err2ad), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __err2ad (return #2) + NOPH + MOVW (R3), R2 // retrieve errno2 + MOVD R2, errno2+40(FP) // store in return area + done: + MOVD R4, 0(R9) // Save stack pointer. RET -TEXT ·syscall_syscall9(SB),NOSPLIT,$0 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 +// +// Call LE function, if the return is 0 +// errno and errno2 is retrieved +// +TEXT ·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD CAA(R8), R9 + MOVD g, GOCB(R9) // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - MOVD a7+56(FP), R12 - MOVD R12, (2176+48)(R4) - MOVD a8+64(FP), R12 - MOVD R12, (2176+56)(R4) - MOVD a9+72(FP), R12 - MOVD R12, (2176+64)(R4) - - // Call function. - LE_CALL + MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address + MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer + + MOVD parms_base+8(FP), R7 // R7 -> argument array + MOVD parms_len+16(FP), R8 // R8 number of arguments + + // arg 1 ---> R1 + CMP R8, $0 + BEQ docall + SUB $1, R8 + MOVD 0(R7), R1 + + // arg 2 ---> R2 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R2 + + // arg 3 --> R3 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R3 + + CMP R8, $0 + BEQ docall + MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument + +repeat: + ADD $8, R7 + MOVD 0(R7), R0 // advance arg pointer by 8 byte + ADD $8, R6 // advance LE argument address by 8 byte + MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame + SUB $1, R8 + CMP R8, $0 + BNE repeat + +docall: + MOVD funcdesc+0(FP), R8 // R8-> function descriptor + LMG 0(R8), R5, R6 + MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC + LE_CALL // balr R7, R6 (return #1) NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+80(FP) - MOVD R0, r2+88(FP) - MOVD R0, err+96(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+96(FP) -done: - BL runtime·exitsyscall(SB) - RET - -TEXT ·syscall_rawsyscall9(SB),NOSPLIT,$0 - MOVD a1+8(FP), R1 - MOVD a2+16(FP), R2 - MOVD a3+24(FP), R3 - - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get function. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - MOVD trap+0(FP), R5 - SLD $4, R5 - ADD R5, R9 - LMG 0(R9), R5, R6 - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Fill in parameter list. - MOVD a4+32(FP), R12 - MOVD R12, (2176+24)(R4) - MOVD a5+40(FP), R12 - MOVD R12, (2176+32)(R4) - MOVD a6+48(FP), R12 - MOVD R12, (2176+40)(R4) - MOVD a7+56(FP), R12 - MOVD R12, (2176+48)(R4) - MOVD a8+64(FP), R12 - MOVD R12, (2176+56)(R4) - MOVD a9+72(FP), R12 - MOVD R12, (2176+64)(R4) - - // Call function. - LE_CALL + MOVD R3, ret+32(FP) + CMP R3, $0 // compare result to 0 + BNE done + + // retrieve errno and errno2 + MOVD zosLibVec<>(SB), R8 + ADD $(__errno), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __errno (return #3) NOPH - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - - MOVD R3, r1+80(FP) - MOVD R0, r2+88(FP) - MOVD R0, err+96(FP) - MOVW R3, R4 - CMP R4, $-1 - BNE done - BL addrerrno<>(SB) - MOVWZ 0(R3), R3 - MOVD R3, err+96(FP) -done: - RET - -// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) -TEXT ·svcCall(SB),NOSPLIT,$0 - BL runtime·save_g(SB) // Save g and stack pointer - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD R15, 0(R9) - - MOVD argv+8(FP), R1 // Move function arguments into registers - MOVD dsa+16(FP), g - MOVD fnptr+0(FP), R15 - - BYTE $0x0D // Branch to function - BYTE $0xEF - - BL runtime·load_g(SB) // Restore g and stack pointer - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R15 - - RET - -// func svcLoad(name *byte) unsafe.Pointer -TEXT ·svcLoad(SB),NOSPLIT,$0 - MOVD R15, R2 // Save go stack pointer - MOVD name+0(FP), R0 // Move SVC args into registers - MOVD $0x80000000, R1 - MOVD $0, R15 - BYTE $0x0A // SVC 08 LOAD - BYTE $0x08 - MOVW R15, R3 // Save return code from SVC - MOVD R2, R15 // Restore go stack pointer - CMP R3, $0 // Check SVC return code - BNE error - - MOVD $-2, R3 // Reset last bit of entry point to zero - AND R0, R3 - MOVD R3, addr+8(FP) // Return entry point returned by SVC - CMP R0, R3 // Check if last bit of entry point was set - BNE done - - MOVD R15, R2 // Save go stack pointer - MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) - BYTE $0x0A // SVC 09 DELETE - BYTE $0x09 - MOVD R2, R15 // Restore go stack pointer + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) + MOVD zosLibVec<>(SB), R8 + ADD $(__err2ad), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __err2ad (return #2) + NOPH + MOVW (R3), R2 // retrieve errno2 + MOVD R2, errno2+40(FP) // store in return area + XOR R2, R2 + MOVWZ R2, (R3) // clear errno2 -error: - MOVD $0, addr+8(FP) // Return 0 on failure done: - XOR R0, R0 // Reset r0 to 0 + MOVD R4, 0(R9) // Save stack pointer. RET -// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 -TEXT ·svcUnload(SB),NOSPLIT,$0 - MOVD R15, R2 // Save go stack pointer - MOVD name+0(FP), R0 // Move SVC args into registers - MOVD addr+8(FP), R15 - BYTE $0x0A // SVC 09 - BYTE $0x09 - XOR R0, R0 // Reset r0 to 0 - MOVD R15, R1 // Save SVC return code - MOVD R2, R15 // Restore go stack pointer - MOVD R1, rc+0(FP) // Return SVC return code +// +// function to test if a pointer can be safely dereferenced (content read) +// return 0 for succces +// +TEXT ·ptrtest(SB), NOSPLIT, $0-16 + MOVD arg+0(FP), R10 // test pointer in R10 + + // set up R2 to point to CEECAADMC + BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 + BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 + BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) + BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) + + // set up R5 to point to the "shunt" path which set 1 to R3 (failure) + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 + BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 + BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 + + // if r3 is not zero (failed) then branch to finish + BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 + BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 + + // stomic store shunt address in R5 into CEECAADMC + BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) + + // now try reading from the test pointer in R10, if it fails it branches to the "lghi" instruction above + BYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 9,0(10) + + // finish here, restore 0 into CEECAADMC + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 + BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) + MOVD R3, ret+8(FP) // result in R3 RET -// func gettid() uint64 -TEXT ·gettid(SB), NOSPLIT, $0 - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get CEECAATHDID - MOVD CAA(R8), R9 - MOVD 0x3D0(R9), R9 - MOVD R9, ret+0(FP) - +// +// function to test if a untptr can be loaded from a pointer +// return 1: the 8-byte content +// 2: 0 for success, 1 for failure +// +// func safeload(ptr uintptr) ( value uintptr, error uintptr) +TEXT ·safeload(SB), NOSPLIT, $0-24 + MOVD ptr+0(FP), R10 // test pointer in R10 + MOVD $0x0, R6 + BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 + BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 + BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) + BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 + BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 + BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 + BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 + BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 + BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) + BYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 6,0(10) + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 + BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) + MOVD R6, value+8(FP) // result in R6 + MOVD R3, error+16(FP) // error in R3 RET diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.go b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go new file mode 100644 index 000000000..39d647d86 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go @@ -0,0 +1,657 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos + +package unix + +import ( + "bytes" + "fmt" + "unsafe" +) + +//go:noescape +func bpxcall(plist []unsafe.Pointer, bpx_offset int64) + +//go:noescape +func A2e([]byte) + +//go:noescape +func E2a([]byte) + +const ( + BPX4STA = 192 // stat + BPX4FST = 104 // fstat + BPX4LST = 132 // lstat + BPX4OPN = 156 // open + BPX4CLO = 72 // close + BPX4CHR = 500 // chattr + BPX4FCR = 504 // fchattr + BPX4LCR = 1180 // lchattr + BPX4CTW = 492 // cond_timed_wait + BPX4GTH = 1056 // __getthent + BPX4PTQ = 412 // pthread_quiesc + BPX4PTR = 320 // ptrace +) + +const ( + //options + //byte1 + BPX_OPNFHIGH = 0x80 + //byte2 + BPX_OPNFEXEC = 0x80 + //byte3 + BPX_O_NOLARGEFILE = 0x08 + BPX_O_LARGEFILE = 0x04 + BPX_O_ASYNCSIG = 0x02 + BPX_O_SYNC = 0x01 + //byte4 + BPX_O_CREXCL = 0xc0 + BPX_O_CREAT = 0x80 + BPX_O_EXCL = 0x40 + BPX_O_NOCTTY = 0x20 + BPX_O_TRUNC = 0x10 + BPX_O_APPEND = 0x08 + BPX_O_NONBLOCK = 0x04 + BPX_FNDELAY = 0x04 + BPX_O_RDWR = 0x03 + BPX_O_RDONLY = 0x02 + BPX_O_WRONLY = 0x01 + BPX_O_ACCMODE = 0x03 + BPX_O_GETFL = 0x0f + + //mode + // byte1 (file type) + BPX_FT_DIR = 1 + BPX_FT_CHARSPEC = 2 + BPX_FT_REGFILE = 3 + BPX_FT_FIFO = 4 + BPX_FT_SYMLINK = 5 + BPX_FT_SOCKET = 6 + //byte3 + BPX_S_ISUID = 0x08 + BPX_S_ISGID = 0x04 + BPX_S_ISVTX = 0x02 + BPX_S_IRWXU1 = 0x01 + BPX_S_IRUSR = 0x01 + //byte4 + BPX_S_IRWXU2 = 0xc0 + BPX_S_IWUSR = 0x80 + BPX_S_IXUSR = 0x40 + BPX_S_IRWXG = 0x38 + BPX_S_IRGRP = 0x20 + BPX_S_IWGRP = 0x10 + BPX_S_IXGRP = 0x08 + BPX_S_IRWXOX = 0x07 + BPX_S_IROTH = 0x04 + BPX_S_IWOTH = 0x02 + BPX_S_IXOTH = 0x01 + + CW_INTRPT = 1 + CW_CONDVAR = 32 + CW_TIMEOUT = 64 + + PGTHA_NEXT = 2 + PGTHA_CURRENT = 1 + PGTHA_FIRST = 0 + PGTHA_LAST = 3 + PGTHA_PROCESS = 0x80 + PGTHA_CONTTY = 0x40 + PGTHA_PATH = 0x20 + PGTHA_COMMAND = 0x10 + PGTHA_FILEDATA = 0x08 + PGTHA_THREAD = 0x04 + PGTHA_PTAG = 0x02 + PGTHA_COMMANDLONG = 0x01 + PGTHA_THREADFAST = 0x80 + PGTHA_FILEPATH = 0x40 + PGTHA_THDSIGMASK = 0x20 + // thread quiece mode + QUIESCE_TERM int32 = 1 + QUIESCE_FORCE int32 = 2 + QUIESCE_QUERY int32 = 3 + QUIESCE_FREEZE int32 = 4 + QUIESCE_UNFREEZE int32 = 5 + FREEZE_THIS_THREAD int32 = 6 + FREEZE_EXIT int32 = 8 + QUIESCE_SRB int32 = 9 +) + +type Pgtha struct { + Pid uint32 // 0 + Tid0 uint32 // 4 + Tid1 uint32 + Accesspid byte // C + Accesstid byte // D + Accessasid uint16 // E + Loginname [8]byte // 10 + Flag1 byte // 18 + Flag1b2 byte // 19 +} + +type Bpxystat_t struct { // DSECT BPXYSTAT + St_id [4]uint8 // 0 + St_length uint16 // 0x4 + St_version uint16 // 0x6 + St_mode uint32 // 0x8 + St_ino uint32 // 0xc + St_dev uint32 // 0x10 + St_nlink uint32 // 0x14 + St_uid uint32 // 0x18 + St_gid uint32 // 0x1c + St_size uint64 // 0x20 + St_atime uint32 // 0x28 + St_mtime uint32 // 0x2c + St_ctime uint32 // 0x30 + St_rdev uint32 // 0x34 + St_auditoraudit uint32 // 0x38 + St_useraudit uint32 // 0x3c + St_blksize uint32 // 0x40 + St_createtime uint32 // 0x44 + St_auditid [4]uint32 // 0x48 + St_res01 uint32 // 0x58 + Ft_ccsid uint16 // 0x5c + Ft_flags uint16 // 0x5e + St_res01a [2]uint32 // 0x60 + St_res02 uint32 // 0x68 + St_blocks uint32 // 0x6c + St_opaque [3]uint8 // 0x70 + St_visible uint8 // 0x73 + St_reftime uint32 // 0x74 + St_fid uint64 // 0x78 + St_filefmt uint8 // 0x80 + St_fspflag2 uint8 // 0x81 + St_res03 [2]uint8 // 0x82 + St_ctimemsec uint32 // 0x84 + St_seclabel [8]uint8 // 0x88 + St_res04 [4]uint8 // 0x90 + // end of version 1 + _ uint32 // 0x94 + St_atime64 uint64 // 0x98 + St_mtime64 uint64 // 0xa0 + St_ctime64 uint64 // 0xa8 + St_createtime64 uint64 // 0xb0 + St_reftime64 uint64 // 0xb8 + _ uint64 // 0xc0 + St_res05 [16]uint8 // 0xc8 + // end of version 2 +} + +type BpxFilestatus struct { + Oflag1 byte + Oflag2 byte + Oflag3 byte + Oflag4 byte +} + +type BpxMode struct { + Ftype byte + Mode1 byte + Mode2 byte + Mode3 byte +} + +// Thr attribute structure for extended attributes +type Bpxyatt_t struct { // DSECT BPXYATT + Att_id [4]uint8 + Att_version uint16 + Att_res01 [2]uint8 + Att_setflags1 uint8 + Att_setflags2 uint8 + Att_setflags3 uint8 + Att_setflags4 uint8 + Att_mode uint32 + Att_uid uint32 + Att_gid uint32 + Att_opaquemask [3]uint8 + Att_visblmaskres uint8 + Att_opaque [3]uint8 + Att_visibleres uint8 + Att_size_h uint32 + Att_size_l uint32 + Att_atime uint32 + Att_mtime uint32 + Att_auditoraudit uint32 + Att_useraudit uint32 + Att_ctime uint32 + Att_reftime uint32 + // end of version 1 + Att_filefmt uint8 + Att_res02 [3]uint8 + Att_filetag uint32 + Att_res03 [8]uint8 + // end of version 2 + Att_atime64 uint64 + Att_mtime64 uint64 + Att_ctime64 uint64 + Att_reftime64 uint64 + Att_seclabel [8]uint8 + Att_ver3res02 [8]uint8 + // end of version 3 +} + +func BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) { + if len(name) < 1024 { + var namebuf [1024]byte + sz := int32(copy(namebuf[:], name)) + A2e(namebuf[:sz]) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(options) + parms[3] = unsafe.Pointer(mode) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4OPN) + return rv, rc, rn + } + return -1, -1, -1 +} + +func BpxClose(fd int32) (rv int32, rc int32, rn int32) { + var parms [4]unsafe.Pointer + parms[0] = unsafe.Pointer(&fd) + parms[1] = unsafe.Pointer(&rv) + parms[2] = unsafe.Pointer(&rc) + parms[3] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4CLO) + return rv, rc, rn +} + +func BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) { + st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} + st.St_version = 2 + stat_sz := uint32(unsafe.Sizeof(*st)) + var parms [6]unsafe.Pointer + parms[0] = unsafe.Pointer(&fd) + parms[1] = unsafe.Pointer(&stat_sz) + parms[2] = unsafe.Pointer(st) + parms[3] = unsafe.Pointer(&rv) + parms[4] = unsafe.Pointer(&rc) + parms[5] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4FST) + return rv, rc, rn +} + +func BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { + if len(name) < 1024 { + var namebuf [1024]byte + sz := int32(copy(namebuf[:], name)) + A2e(namebuf[:sz]) + st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} + st.St_version = 2 + stat_sz := uint32(unsafe.Sizeof(*st)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&stat_sz) + parms[3] = unsafe.Pointer(st) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4STA) + return rv, rc, rn + } + return -1, -1, -1 +} + +func BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { + if len(name) < 1024 { + var namebuf [1024]byte + sz := int32(copy(namebuf[:], name)) + A2e(namebuf[:sz]) + st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} + st.St_version = 2 + stat_sz := uint32(unsafe.Sizeof(*st)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&stat_sz) + parms[3] = unsafe.Pointer(st) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4LST) + return rv, rc, rn + } + return -1, -1, -1 +} + +func BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { + if len(path) >= 1024 { + return -1, -1, -1 + } + var namebuf [1024]byte + sz := int32(copy(namebuf[:], path)) + A2e(namebuf[:sz]) + attr_sz := uint32(unsafe.Sizeof(*attr)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&attr_sz) + parms[3] = unsafe.Pointer(attr) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4CHR) + return rv, rc, rn +} + +func BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { + if len(path) >= 1024 { + return -1, -1, -1 + } + var namebuf [1024]byte + sz := int32(copy(namebuf[:], path)) + A2e(namebuf[:sz]) + attr_sz := uint32(unsafe.Sizeof(*attr)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&attr_sz) + parms[3] = unsafe.Pointer(attr) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4LCR) + return rv, rc, rn +} + +func BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { + attr_sz := uint32(unsafe.Sizeof(*attr)) + var parms [6]unsafe.Pointer + parms[0] = unsafe.Pointer(&fd) + parms[1] = unsafe.Pointer(&attr_sz) + parms[2] = unsafe.Pointer(attr) + parms[3] = unsafe.Pointer(&rv) + parms[4] = unsafe.Pointer(&rc) + parms[5] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4FCR) + return rv, rc, rn +} + +func BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) { + var parms [8]unsafe.Pointer + parms[0] = unsafe.Pointer(&sec) + parms[1] = unsafe.Pointer(&nsec) + parms[2] = unsafe.Pointer(&events) + parms[3] = unsafe.Pointer(secrem) + parms[4] = unsafe.Pointer(nsecrem) + parms[5] = unsafe.Pointer(&rv) + parms[6] = unsafe.Pointer(&rc) + parms[7] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4CTW) + return rv, rc, rn +} +func BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) { + var parms [7]unsafe.Pointer + inlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is "packed" and must be 26-byte + parms[0] = unsafe.Pointer(&inlen) + parms[1] = unsafe.Pointer(&in) + parms[2] = unsafe.Pointer(outlen) + parms[3] = unsafe.Pointer(&out) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4GTH) + return rv, rc, rn +} +func ZosJobname() (jobname string, err error) { + var pgtha Pgtha + pgtha.Pid = uint32(Getpid()) + pgtha.Accesspid = PGTHA_CURRENT + pgtha.Flag1 = PGTHA_PROCESS + var out [256]byte + var outlen uint32 + outlen = 256 + rv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0])) + if rv == 0 { + gthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic + ix := bytes.Index(out[:], gthc) + if ix == -1 { + err = fmt.Errorf("BPX4GTH: gthc return data not found") + return + } + jn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80 + E2a(jn) + jobname = string(bytes.TrimRight(jn, " ")) + + } else { + err = fmt.Errorf("BPX4GTH: rc=%d errno=%d reason=code=0x%x", rv, rc, rn) + } + return +} +func Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) { + var userdata [8]byte + var parms [5]unsafe.Pointer + copy(userdata[:], data+" ") + A2e(userdata[:]) + parms[0] = unsafe.Pointer(&code) + parms[1] = unsafe.Pointer(&userdata[0]) + parms[2] = unsafe.Pointer(&rv) + parms[3] = unsafe.Pointer(&rc) + parms[4] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4PTQ) + return rv, rc, rn +} + +const ( + PT_TRACE_ME = 0 // Debug this process + PT_READ_I = 1 // Read a full word + PT_READ_D = 2 // Read a full word + PT_READ_U = 3 // Read control info + PT_WRITE_I = 4 //Write a full word + PT_WRITE_D = 5 //Write a full word + PT_CONTINUE = 7 //Continue the process + PT_KILL = 8 //Terminate the process + PT_READ_GPR = 11 // Read GPR, CR, PSW + PT_READ_FPR = 12 // Read FPR + PT_READ_VR = 13 // Read VR + PT_WRITE_GPR = 14 // Write GPR, CR, PSW + PT_WRITE_FPR = 15 // Write FPR + PT_WRITE_VR = 16 // Write VR + PT_READ_BLOCK = 17 // Read storage + PT_WRITE_BLOCK = 19 // Write storage + PT_READ_GPRH = 20 // Read GPRH + PT_WRITE_GPRH = 21 // Write GPRH + PT_REGHSET = 22 // Read all GPRHs + PT_ATTACH = 30 // Attach to a process + PT_DETACH = 31 // Detach from a process + PT_REGSET = 32 // Read all GPRs + PT_REATTACH = 33 // Reattach to a process + PT_LDINFO = 34 // Read loader info + PT_MULTI = 35 // Multi process mode + PT_LD64INFO = 36 // RMODE64 Info Area + PT_BLOCKREQ = 40 // Block request + PT_THREAD_INFO = 60 // Read thread info + PT_THREAD_MODIFY = 61 + PT_THREAD_READ_FOCUS = 62 + PT_THREAD_WRITE_FOCUS = 63 + PT_THREAD_HOLD = 64 + PT_THREAD_SIGNAL = 65 + PT_EXPLAIN = 66 + PT_EVENTS = 67 + PT_THREAD_INFO_EXTENDED = 68 + PT_REATTACH2 = 71 + PT_CAPTURE = 72 + PT_UNCAPTURE = 73 + PT_GET_THREAD_TCB = 74 + PT_GET_ALET = 75 + PT_SWAPIN = 76 + PT_EXTENDED_EVENT = 98 + PT_RECOVER = 99 // Debug a program check + PT_GPR0 = 0 // General purpose register 0 + PT_GPR1 = 1 // General purpose register 1 + PT_GPR2 = 2 // General purpose register 2 + PT_GPR3 = 3 // General purpose register 3 + PT_GPR4 = 4 // General purpose register 4 + PT_GPR5 = 5 // General purpose register 5 + PT_GPR6 = 6 // General purpose register 6 + PT_GPR7 = 7 // General purpose register 7 + PT_GPR8 = 8 // General purpose register 8 + PT_GPR9 = 9 // General purpose register 9 + PT_GPR10 = 10 // General purpose register 10 + PT_GPR11 = 11 // General purpose register 11 + PT_GPR12 = 12 // General purpose register 12 + PT_GPR13 = 13 // General purpose register 13 + PT_GPR14 = 14 // General purpose register 14 + PT_GPR15 = 15 // General purpose register 15 + PT_FPR0 = 16 // Floating point register 0 + PT_FPR1 = 17 // Floating point register 1 + PT_FPR2 = 18 // Floating point register 2 + PT_FPR3 = 19 // Floating point register 3 + PT_FPR4 = 20 // Floating point register 4 + PT_FPR5 = 21 // Floating point register 5 + PT_FPR6 = 22 // Floating point register 6 + PT_FPR7 = 23 // Floating point register 7 + PT_FPR8 = 24 // Floating point register 8 + PT_FPR9 = 25 // Floating point register 9 + PT_FPR10 = 26 // Floating point register 10 + PT_FPR11 = 27 // Floating point register 11 + PT_FPR12 = 28 // Floating point register 12 + PT_FPR13 = 29 // Floating point register 13 + PT_FPR14 = 30 // Floating point register 14 + PT_FPR15 = 31 // Floating point register 15 + PT_FPC = 32 // Floating point control register + PT_PSW = 40 // PSW + PT_PSW0 = 40 // Left half of the PSW + PT_PSW1 = 41 // Right half of the PSW + PT_CR0 = 42 // Control register 0 + PT_CR1 = 43 // Control register 1 + PT_CR2 = 44 // Control register 2 + PT_CR3 = 45 // Control register 3 + PT_CR4 = 46 // Control register 4 + PT_CR5 = 47 // Control register 5 + PT_CR6 = 48 // Control register 6 + PT_CR7 = 49 // Control register 7 + PT_CR8 = 50 // Control register 8 + PT_CR9 = 51 // Control register 9 + PT_CR10 = 52 // Control register 10 + PT_CR11 = 53 // Control register 11 + PT_CR12 = 54 // Control register 12 + PT_CR13 = 55 // Control register 13 + PT_CR14 = 56 // Control register 14 + PT_CR15 = 57 // Control register 15 + PT_GPRH0 = 58 // GP High register 0 + PT_GPRH1 = 59 // GP High register 1 + PT_GPRH2 = 60 // GP High register 2 + PT_GPRH3 = 61 // GP High register 3 + PT_GPRH4 = 62 // GP High register 4 + PT_GPRH5 = 63 // GP High register 5 + PT_GPRH6 = 64 // GP High register 6 + PT_GPRH7 = 65 // GP High register 7 + PT_GPRH8 = 66 // GP High register 8 + PT_GPRH9 = 67 // GP High register 9 + PT_GPRH10 = 68 // GP High register 10 + PT_GPRH11 = 69 // GP High register 11 + PT_GPRH12 = 70 // GP High register 12 + PT_GPRH13 = 71 // GP High register 13 + PT_GPRH14 = 72 // GP High register 14 + PT_GPRH15 = 73 // GP High register 15 + PT_VR0 = 74 // Vector register 0 + PT_VR1 = 75 // Vector register 1 + PT_VR2 = 76 // Vector register 2 + PT_VR3 = 77 // Vector register 3 + PT_VR4 = 78 // Vector register 4 + PT_VR5 = 79 // Vector register 5 + PT_VR6 = 80 // Vector register 6 + PT_VR7 = 81 // Vector register 7 + PT_VR8 = 82 // Vector register 8 + PT_VR9 = 83 // Vector register 9 + PT_VR10 = 84 // Vector register 10 + PT_VR11 = 85 // Vector register 11 + PT_VR12 = 86 // Vector register 12 + PT_VR13 = 87 // Vector register 13 + PT_VR14 = 88 // Vector register 14 + PT_VR15 = 89 // Vector register 15 + PT_VR16 = 90 // Vector register 16 + PT_VR17 = 91 // Vector register 17 + PT_VR18 = 92 // Vector register 18 + PT_VR19 = 93 // Vector register 19 + PT_VR20 = 94 // Vector register 20 + PT_VR21 = 95 // Vector register 21 + PT_VR22 = 96 // Vector register 22 + PT_VR23 = 97 // Vector register 23 + PT_VR24 = 98 // Vector register 24 + PT_VR25 = 99 // Vector register 25 + PT_VR26 = 100 // Vector register 26 + PT_VR27 = 101 // Vector register 27 + PT_VR28 = 102 // Vector register 28 + PT_VR29 = 103 // Vector register 29 + PT_VR30 = 104 // Vector register 30 + PT_VR31 = 105 // Vector register 31 + PT_PSWG = 106 // PSWG + PT_PSWG0 = 106 // Bytes 0-3 + PT_PSWG1 = 107 // Bytes 4-7 + PT_PSWG2 = 108 // Bytes 8-11 (IA high word) + PT_PSWG3 = 109 // Bytes 12-15 (IA low word) +) + +func Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) { + var parms [8]unsafe.Pointer + parms[0] = unsafe.Pointer(&request) + parms[1] = unsafe.Pointer(&pid) + parms[2] = unsafe.Pointer(&addr) + parms[3] = unsafe.Pointer(&data) + parms[4] = unsafe.Pointer(&buffer) + parms[5] = unsafe.Pointer(&rv) + parms[6] = unsafe.Pointer(&rc) + parms[7] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4PTR) + return rv, rc, rn +} + +func copyU8(val uint8, dest []uint8) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} + +func copyU8Arr(src, dest []uint8) int { + if len(dest) < len(src) { + return 0 + } + for i, v := range src { + dest[i] = v + } + return len(src) +} + +func copyU16(val uint16, dest []uint16) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} + +func copyU32(val uint32, dest []uint32) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} + +func copyU32Arr(src, dest []uint32) int { + if len(dest) < len(src) { + return 0 + } + for i, v := range src { + dest[i] = v + } + return len(src) +} + +func copyU64(val uint64, dest []uint64) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.s b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s new file mode 100644 index 000000000..4bd4a1798 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s @@ -0,0 +1,192 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "go_asm.h" +#include "textflag.h" + +// function to call USS assembly language services +// +// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm +// +// arg1 unsafe.Pointer array that ressembles an OS PLIST +// +// arg2 function offset as in +// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm +// +// func bpxcall(plist []unsafe.Pointer, bpx_offset int64) + +TEXT ·bpxcall(SB), NOSPLIT|NOFRAME, $0 + MOVD plist_base+0(FP), R1 // r1 points to plist + MOVD bpx_offset+24(FP), R2 // r2 offset to BPX vector table + MOVD R14, R7 // save r14 + MOVD R15, R8 // save r15 + MOVWZ 16(R0), R9 + MOVWZ 544(R9), R9 + MOVWZ 24(R9), R9 // call vector in r9 + ADD R2, R9 // add offset to vector table + MOVWZ (R9), R9 // r9 points to entry point + BYTE $0x0D // BL R14,R9 --> basr r14,r9 + BYTE $0xE9 // clobbers 0,1,14,15 + MOVD R8, R15 // restore 15 + JMP R7 // return via saved return address + +// func A2e(arr [] byte) +// code page conversion from 819 to 1047 +TEXT ·A2e(SB), NOSPLIT|NOFRAME, $0 + MOVD arg_base+0(FP), R2 // pointer to arry of characters + MOVD arg_len+8(FP), R3 // count + XOR R0, R0 + XOR R1, R1 + BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) + + // ASCII -> EBCDIC conversion table: + BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 + BYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f + BYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b + BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f + BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 + BYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26 + BYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27 + BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f + BYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b + BYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d + BYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e + BYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61 + BYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3 + BYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7 + BYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e + BYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f + BYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3 + BYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7 + BYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2 + BYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6 + BYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2 + BYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6 + BYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad + BYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d + BYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83 + BYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87 + BYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92 + BYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96 + BYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2 + BYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6 + BYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0 + BYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07 + BYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23 + BYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17 + BYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b + BYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b + BYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33 + BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08 + BYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b + BYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff + BYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1 + BYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5 + BYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a + BYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc + BYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa + BYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3 + BYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b + BYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab + BYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66 + BYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68 + BYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73 + BYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77 + BYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee + BYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf + BYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb + BYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59 + BYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46 + BYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48 + BYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53 + BYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57 + BYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce + BYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1 + BYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb + BYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf + +retry: + WORD $0xB9931022 // TROO 2,2,b'0001' + BVS retry + RET + +// func e2a(arr [] byte) +// code page conversion from 1047 to 819 +TEXT ·E2a(SB), NOSPLIT|NOFRAME, $0 + MOVD arg_base+0(FP), R2 // pointer to arry of characters + MOVD arg_len+8(FP), R3 // count + XOR R0, R0 + XOR R1, R1 + BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) + + // EBCDIC -> ASCII conversion table: + BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 + BYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f + BYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b + BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f + BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 + BYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87 + BYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f + BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f + BYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83 + BYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b + BYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b + BYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07 + BYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93 + BYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04 + BYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b + BYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a + BYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4 + BYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5 + BYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e + BYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c + BYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb + BYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef + BYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24 + BYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e + BYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4 + BYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5 + BYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c + BYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f + BYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb + BYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf + BYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23 + BYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22 + BYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63 + BYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67 + BYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb + BYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1 + BYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c + BYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70 + BYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba + BYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4 + BYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74 + BYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78 + BYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf + BYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae + BYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7 + BYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc + BYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8 + BYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7 + BYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43 + BYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47 + BYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4 + BYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5 + BYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c + BYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50 + BYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb + BYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff + BYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54 + BYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58 + BYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4 + BYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5 + BYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33 + BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37 + BYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb + BYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f + +retry: + WORD $0xB9931022 // TROO 2,2,b'0001' + BVS retry + RET diff --git a/vendor/golang.org/x/sys/unix/epoll_zos.go b/vendor/golang.org/x/sys/unix/epoll_zos.go deleted file mode 100644 index 7753fddea..000000000 --- a/vendor/golang.org/x/sys/unix/epoll_zos.go +++ /dev/null @@ -1,220 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x - -package unix - -import ( - "sync" -) - -// This file simulates epoll on z/OS using poll. - -// Analogous to epoll_event on Linux. -// TODO(neeilan): Pad is because the Linux kernel expects a 96-bit struct. We never pass this to the kernel; remove? -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - EPOLLERR = 0x8 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDNORM = 0x40 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - // The following constants are part of the epoll API, but represent - // currently unsupported functionality on z/OS. - // EPOLL_CLOEXEC = 0x80000 - // EPOLLET = 0x80000000 - // EPOLLONESHOT = 0x40000000 - // EPOLLRDHUP = 0x2000 // Typically used with edge-triggered notis - // EPOLLEXCLUSIVE = 0x10000000 // Exclusive wake-up mode - // EPOLLWAKEUP = 0x20000000 // Relies on Linux's BLOCK_SUSPEND capability -) - -// TODO(neeilan): We can eliminate these epToPoll / pToEpoll calls by using identical mask values for POLL/EPOLL -// constants where possible The lower 16 bits of epoll events (uint32) can fit any system poll event (int16). - -// epToPollEvt converts epoll event field to poll equivalent. -// In epoll, Events is a 32-bit field, while poll uses 16 bits. -func epToPollEvt(events uint32) int16 { - var ep2p = map[uint32]int16{ - EPOLLIN: POLLIN, - EPOLLOUT: POLLOUT, - EPOLLHUP: POLLHUP, - EPOLLPRI: POLLPRI, - EPOLLERR: POLLERR, - } - - var pollEvts int16 = 0 - for epEvt, pEvt := range ep2p { - if (events & epEvt) != 0 { - pollEvts |= pEvt - } - } - - return pollEvts -} - -// pToEpollEvt converts 16 bit poll event bitfields to 32-bit epoll event fields. -func pToEpollEvt(revents int16) uint32 { - var p2ep = map[int16]uint32{ - POLLIN: EPOLLIN, - POLLOUT: EPOLLOUT, - POLLHUP: EPOLLHUP, - POLLPRI: EPOLLPRI, - POLLERR: EPOLLERR, - } - - var epollEvts uint32 = 0 - for pEvt, epEvt := range p2ep { - if (revents & pEvt) != 0 { - epollEvts |= epEvt - } - } - - return epollEvts -} - -// Per-process epoll implementation. -type epollImpl struct { - mu sync.Mutex - epfd2ep map[int]*eventPoll - nextEpfd int -} - -// eventPoll holds a set of file descriptors being watched by the process. A process can have multiple epoll instances. -// On Linux, this is an in-kernel data structure accessed through a fd. -type eventPoll struct { - mu sync.Mutex - fds map[int]*EpollEvent -} - -// epoll impl for this process. -var impl epollImpl = epollImpl{ - epfd2ep: make(map[int]*eventPoll), - nextEpfd: 0, -} - -func (e *epollImpl) epollcreate(size int) (epfd int, err error) { - e.mu.Lock() - defer e.mu.Unlock() - epfd = e.nextEpfd - e.nextEpfd++ - - e.epfd2ep[epfd] = &eventPoll{ - fds: make(map[int]*EpollEvent), - } - return epfd, nil -} - -func (e *epollImpl) epollcreate1(flag int) (fd int, err error) { - return e.epollcreate(4) -} - -func (e *epollImpl) epollctl(epfd int, op int, fd int, event *EpollEvent) (err error) { - e.mu.Lock() - defer e.mu.Unlock() - - ep, ok := e.epfd2ep[epfd] - if !ok { - - return EBADF - } - - switch op { - case EPOLL_CTL_ADD: - // TODO(neeilan): When we make epfds and fds disjoint, detect epoll - // loops here (instances watching each other) and return ELOOP. - if _, ok := ep.fds[fd]; ok { - return EEXIST - } - ep.fds[fd] = event - case EPOLL_CTL_MOD: - if _, ok := ep.fds[fd]; !ok { - return ENOENT - } - ep.fds[fd] = event - case EPOLL_CTL_DEL: - if _, ok := ep.fds[fd]; !ok { - return ENOENT - } - delete(ep.fds, fd) - - } - return nil -} - -// Must be called while holding ep.mu -func (ep *eventPoll) getFds() []int { - fds := make([]int, len(ep.fds)) - for fd := range ep.fds { - fds = append(fds, fd) - } - return fds -} - -func (e *epollImpl) epollwait(epfd int, events []EpollEvent, msec int) (n int, err error) { - e.mu.Lock() // in [rare] case of concurrent epollcreate + epollwait - ep, ok := e.epfd2ep[epfd] - - if !ok { - e.mu.Unlock() - return 0, EBADF - } - - pollfds := make([]PollFd, 4) - for fd, epollevt := range ep.fds { - pollfds = append(pollfds, PollFd{Fd: int32(fd), Events: epToPollEvt(epollevt.Events)}) - } - e.mu.Unlock() - - n, err = Poll(pollfds, msec) - if err != nil { - return n, err - } - - i := 0 - for _, pFd := range pollfds { - if pFd.Revents != 0 { - events[i] = EpollEvent{Fd: pFd.Fd, Events: pToEpollEvt(pFd.Revents)} - i++ - } - - if i == n { - break - } - } - - return n, nil -} - -func EpollCreate(size int) (fd int, err error) { - return impl.epollcreate(size) -} - -func EpollCreate1(flag int) (fd int, err error) { - return impl.epollcreate1(flag) -} - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - return impl.epollctl(epfd, op, fd, event) -} - -// Because EpollWait mutates events, the caller is expected to coordinate -// concurrent access if calling with the same epfd from multiple goroutines. -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - return impl.epollwait(epfd, events, msec) -} diff --git a/vendor/golang.org/x/sys/unix/fstatfs_zos.go b/vendor/golang.org/x/sys/unix/fstatfs_zos.go deleted file mode 100644 index c8bde601e..000000000 --- a/vendor/golang.org/x/sys/unix/fstatfs_zos.go +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x - -package unix - -import ( - "unsafe" -) - -// This file simulates fstatfs on z/OS using fstatvfs and w_getmntent. - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - var stat_v Statvfs_t - err = Fstatvfs(fd, &stat_v) - if err == nil { - // populate stat - stat.Type = 0 - stat.Bsize = stat_v.Bsize - stat.Blocks = stat_v.Blocks - stat.Bfree = stat_v.Bfree - stat.Bavail = stat_v.Bavail - stat.Files = stat_v.Files - stat.Ffree = stat_v.Ffree - stat.Fsid = stat_v.Fsid - stat.Namelen = stat_v.Namemax - stat.Frsize = stat_v.Frsize - stat.Flags = stat_v.Flag - for passn := 0; passn < 5; passn++ { - switch passn { - case 0: - err = tryGetmntent64(stat) - break - case 1: - err = tryGetmntent128(stat) - break - case 2: - err = tryGetmntent256(stat) - break - case 3: - err = tryGetmntent512(stat) - break - case 4: - err = tryGetmntent1024(stat) - break - default: - break - } - //proceed to return if: err is nil (found), err is nonnil but not ERANGE (another error occurred) - if err == nil || err != nil && err != ERANGE { - break - } - } - } - return err -} - -func tryGetmntent64(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [64]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent128(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [128]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent256(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [256]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent512(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [512]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} - -func tryGetmntent1024(stat *Statfs_t) (err error) { - var mnt_ent_buffer struct { - header W_Mnth - filesys_info [1024]W_Mntent - } - var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) - fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) - if err != nil { - return err - } - err = ERANGE //return ERANGE if no match is found in this batch - for i := 0; i < fs_count; i++ { - if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { - stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) - err = nil - break - } - } - return err -} diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go index 4d0a3430e..0482408d7 100644 --- a/vendor/golang.org/x/sys/unix/pagesize_unix.go +++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos // For Unix, get the pagesize from the runtime. diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go index 130398b6b..b903c0060 100644 --- a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build darwin +//go:build darwin || zos package unix diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_zos.go b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go new file mode 100644 index 000000000..3e53dbc02 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go @@ -0,0 +1,58 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Socket control messages + +package unix + +import "unsafe" + +// UnixCredentials encodes credentials into a socket control message +// for sending to another process. This can be used for +// authentication. +func UnixCredentials(ucred *Ucred) []byte { + b := make([]byte, CmsgSpace(SizeofUcred)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_CREDENTIALS + h.SetLen(CmsgLen(SizeofUcred)) + *(*Ucred)(h.data(0)) = *ucred + return b +} + +// ParseUnixCredentials decodes a socket control message that contains +// credentials in a Ucred structure. To receive such a message, the +// SO_PASSCRED option must be enabled on the socket. +func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { + if m.Header.Level != SOL_SOCKET { + return nil, EINVAL + } + if m.Header.Type != SCM_CREDENTIALS { + return nil, EINVAL + } + ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) + return &ucred, nil +} + +// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. +func PktInfo4(info *Inet4Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IP + h.Type = IP_PKTINFO + h.SetLen(CmsgLen(SizeofInet4Pktinfo)) + *(*Inet4Pktinfo)(h.data(0)) = *info + return b +} + +// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. +func PktInfo6(info *Inet6Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IPV6 + h.Type = IPV6_PKTINFO + h.SetLen(CmsgLen(SizeofInet6Pktinfo)) + *(*Inet6Pktinfo)(h.data(0)) = *info + return b +} diff --git a/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s new file mode 100644 index 000000000..3c4f33cb6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s @@ -0,0 +1,75 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x && gc + +#include "textflag.h" + +// provide the address of function variable to be fixed up. + +TEXT ·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Pipe2(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Flock(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Getxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Nanosleep(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Setxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Wait4(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mount(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Unmount(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·UtimesNanoAt(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·UtimesNano(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mkfifoat(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Chtag(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Readlinkat(SB), R8 + MOVD R8, ret+0(FP) + RET + diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go index 27c41b6f0..312ae6ac1 100644 --- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -4,11 +4,21 @@ //go:build zos && s390x +// Many of the following syscalls are not available on all versions of z/OS. +// Some missing calls have legacy implementations/simulations but others +// will be missing completely. To achieve consistent failing behaviour on +// legacy systems, we first test the function pointer via a safeloading +// mechanism to see if the function exists on a given system. Then execution +// is branched to either continue the function call, or return an error. + package unix import ( "bytes" "fmt" + "os" + "reflect" + "regexp" "runtime" "sort" "strings" @@ -17,17 +27,205 @@ import ( "unsafe" ) +//go:noescape +func initZosLibVec() + +//go:noescape +func GetZosLibVec() uintptr + +func init() { + initZosLibVec() + r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACE\x00"))[0]))) + if r0 != 0 { + n, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) + ZosTraceLevel = int(n) + r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACEFD\x00"))[0]))) + if r0 != 0 { + fd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) + f := os.NewFile(fd, "zostracefile") + if f != nil { + ZosTracefile = f + } + } + + } +} + +//go:noescape +func CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) + +//go:noescape +func CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) + +// ------------------------------- +// pointer validity test +// good pointer returns 0 +// bad pointer returns 1 +// +//go:nosplit +func ptrtest(uintptr) uint64 + +// Load memory at ptr location with error handling if the location is invalid +// +//go:noescape +func safeload(ptr uintptr) (value uintptr, error uintptr) + const ( - O_CLOEXEC = 0 // Dummy value (not supported). - AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX + entrypointLocationOffset = 8 // From function descriptor + + xplinkEyecatcher = 0x00c300c500c500f1 // ".C.E.E.1" + eyecatcherOffset = 16 // From function entrypoint (negative) + ppa1LocationOffset = 8 // From function entrypoint (negative) + + nameLenOffset = 0x14 // From PPA1 start + nameOffset = 0x16 // From PPA1 start ) -func syscall_syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawsyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawsyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawsyscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) +func getPpaOffset(funcptr uintptr) int64 { + entrypoint, err := safeload(funcptr + entrypointLocationOffset) + if err != 0 { + return -1 + } + + // XPLink functions have ".C.E.E.1" as the first 8 bytes (EBCDIC) + val, err := safeload(entrypoint - eyecatcherOffset) + if err != 0 { + return -1 + } + if val != xplinkEyecatcher { + return -1 + } + + ppaoff, err := safeload(entrypoint - ppa1LocationOffset) + if err != 0 { + return -1 + } + + ppaoff >>= 32 + return int64(ppaoff) +} + +//------------------------------- +// function descriptor pointer validity test +// good pointer returns 0 +// bad pointer returns 1 + +// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName +// have correct funcName pass to the funcptrtest function +func funcptrtest(funcptr uintptr, funcName string) uint64 { + entrypoint, err := safeload(funcptr + entrypointLocationOffset) + if err != 0 { + return 1 + } + + ppaoff := getPpaOffset(funcptr) + if ppaoff == -1 { + return 1 + } + + // PPA1 offset value is from the start of the entire function block, not the entrypoint + ppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff) + + nameLen, err := safeload(ppa1 + nameLenOffset) + if err != 0 { + return 1 + } + + nameLen >>= 48 + if nameLen > 128 { + return 1 + } + + // no function name input to argument end here + if funcName == "" { + return 0 + } + + var funcname [128]byte + for i := 0; i < int(nameLen); i += 8 { + v, err := safeload(ppa1 + nameOffset + uintptr(i)) + if err != 0 { + return 1 + } + funcname[i] = byte(v >> 56) + funcname[i+1] = byte(v >> 48) + funcname[i+2] = byte(v >> 40) + funcname[i+3] = byte(v >> 32) + funcname[i+4] = byte(v >> 24) + funcname[i+5] = byte(v >> 16) + funcname[i+6] = byte(v >> 8) + funcname[i+7] = byte(v) + } + + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l + []uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen}) + + name := string(funcname[:nameLen]) + if name != funcName { + return 1 + } + + return 0 +} + +// For detection of capabilities on a system. +// Is function descriptor f a valid function? +func isValidLeFunc(f uintptr) error { + ret := funcptrtest(f, "") + if ret != 0 { + return fmt.Errorf("Bad pointer, not an LE function ") + } + return nil +} + +// Retrieve function name from descriptor +func getLeFuncName(f uintptr) (string, error) { + // assume it has been checked, only check ppa1 validity here + entry := ((*[2]uintptr)(unsafe.Pointer(f)))[1] + preamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset))) + + offsetPpa1 := preamp[2] + if offsetPpa1 > 0x0ffff { + return "", fmt.Errorf("PPA1 offset seems too big 0x%x\n", offsetPpa1) + } + + ppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1) + res := ptrtest(ppa1) + if res != 0 { + return "", fmt.Errorf("PPA1 address not valid") + } + + size := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset)) + if size > 128 { + return "", fmt.Errorf("Function name seems too long, length=%d\n", size) + } + + var name [128]byte + funcname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset)) + copy(name[0:size], funcname[0:size]) + + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l + []uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)}) + + return string(name[:size]), nil +} + +// Check z/OS version +func zosLeVersion() (version, release uint32) { + p1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32 + p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88))) + p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8))) + p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984))) + vrm := *(*uint32)(unsafe.Pointer(p1 + 80)) + version = (vrm & 0x00ff0000) >> 16 + release = (vrm & 0x0000ff00) >> 8 + return +} + +// returns a zos C FILE * for stdio fd 0, 1, 2 +func ZosStdioFilep(fd int32) uintptr { + return uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3)))))))) +} func copyStat(stat *Stat_t, statLE *Stat_LE_t) { stat.Dev = uint64(statLE.Dev) @@ -65,6 +263,21 @@ func (d *Dirent) NameString() string { } } +func DecodeData(dest []byte, sz int, val uint64) { + for i := 0; i < sz; i++ { + dest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff) + } +} + +func EncodeData(data []byte) uint64 { + var value uint64 + sz := len(data) + for i := 0; i < sz; i++ { + value |= uint64(data[i]) << uint64(((sz - i - 1) * 8)) + } + return value +} + func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { if sa.Port < 0 || sa.Port > 0xFFFF { return nil, 0, EINVAL @@ -74,7 +287,9 @@ func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) p[0] = byte(sa.Port >> 8) p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil } @@ -88,7 +303,9 @@ func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { p[0] = byte(sa.Port >> 8) p[1] = byte(sa.Port) sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil } @@ -146,7 +363,9 @@ func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { sa := new(SockaddrInet4) p := (*[2]byte)(unsafe.Pointer(&pp.Port)) sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } return sa, nil case AF_INET6: @@ -155,7 +374,9 @@ func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { p := (*[2]byte)(unsafe.Pointer(&pp.Port)) sa.Port = int(p[0])<<8 + int(p[1]) sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } return sa, nil } return nil, EAFNOSUPPORT @@ -177,6 +398,43 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { return } +func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, flags) + if err != nil { + return + } + if len > SizeofSockaddrAny { + panic("RawSockaddrAny too small") + } + // TODO(neeilan): Remove 0 in call + sa, err = anyToSockaddr(0, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Ctermid() (tty string, err error) { + var termdev [1025]byte + runtime.EnterSyscall() + r0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0]))) + runtime.ExitSyscall() + if r0 == 0 { + return "", fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) + } + s := string(termdev[:]) + idx := strings.Index(s, string(rune(0))) + if idx == -1 { + tty = s + } else { + tty = s[:idx] + } + return +} + func (iov *Iovec) SetLen(length int) { iov.Len = uint64(length) } @@ -190,10 +448,16 @@ func (cmsg *Cmsghdr) SetLen(length int) { } //sys fcntl(fd int, cmd int, arg int) (val int, err error) +//sys Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A +//sys Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A //sys read(fd int, p []byte) (n int, err error) //sys write(fd int, p []byte) (n int, err error) +//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A +//sys Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A + //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_A //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A //sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A //sysnb getgroups(n int, list *_Gid_t) (nn int, err error) @@ -204,6 +468,7 @@ func (cmsg *Cmsghdr) SetLen(length int) { //sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) //sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A //sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A +//sys Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_A //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A //sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A //sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A @@ -212,6 +477,10 @@ func (cmsg *Cmsghdr) SetLen(length int) { //sys munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP //sys ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL //sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL +//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT +//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64 +//sys shmdt(addr uintptr) (err error) = SYS_SHMDT +//sys shmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET //sys Access(path string, mode uint32) (err error) = SYS___ACCESS_A //sys Chdir(path string) (err error) = SYS___CHDIR_A @@ -220,14 +489,31 @@ func (cmsg *Cmsghdr) SetLen(length int) { //sys Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A //sys Dup(oldfd int) (fd int, err error) //sys Dup2(oldfd int, newfd int) (err error) +//sys Dup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3 +//sys Dirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD +//sys EpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE +//sys EpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1 +//sys EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL +//sys EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT //sys Errno2() (er2 int) = SYS___ERRNO2 -//sys Err2ad() (eadd *int) = SYS___ERR2AD +//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD //sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A + +func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { + return Faccessat(dirfd, path, mode, flags) +} + //sys Fchdir(fd int) (err error) //sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A //sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A //sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL +//sys Fdatasync(fd int) (err error) = SYS_FDATASYNC //sys fstat(fd int, stat *Stat_LE_t) (err error) +//sys fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A func Fstat(fd int, stat *Stat_t) (err error) { var statLE Stat_LE_t @@ -236,28 +522,208 @@ func Fstat(fd int, stat *Stat_t) (err error) { return } +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var statLE Stat_LE_t + err = fstatat(dirfd, path, &statLE, flags) + copyStat(stat, &statLE) + return +} + +func impl_Getxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error)) + +var Getxattr = enter_Getxattr + +func enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) { + funcref := get_GetxattrAddr() + if validGetxattr() { + *funcref = impl_Getxattr + } else { + *funcref = error_Getxattr + } + return (*funcref)(path, attr, dest) +} + +func error_Getxattr(path string, attr string, dest []byte) (sz int, err error) { + return -1, ENOSYS +} + +func validGetxattr() bool { + if funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil { + return name == "__getxattr_a" + } + } + return false +} + +//sys Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A +//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A + +func impl_Setxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) + +var Setxattr = enter_Setxattr + +func enter_Setxattr(path string, attr string, data []byte, flags int) (err error) { + funcref := get_SetxattrAddr() + if validSetxattr() { + *funcref = impl_Setxattr + } else { + *funcref = error_Setxattr + } + return (*funcref)(path, attr, data, flags) +} + +func error_Setxattr(path string, attr string, data []byte, flags int) (err error) { + return ENOSYS +} + +func validSetxattr() bool { + if funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil { + return name == "__setxattr_a" + } + } + return false +} + +//sys Fstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS //sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS //sys Fsync(fd int) (err error) +//sys Futimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES +//sys Futimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A //sys Ftruncate(fd int, length int64) (err error) -//sys Getpagesize() (pgsize int) = SYS_GETPAGESIZE +//sys Getrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM +//sys InotifyInit() (fd int, err error) = SYS_INOTIFY_INIT +//sys InotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1 +//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A +//sys InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH +//sys Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A +//sys Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A +//sys Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A +//sys Lutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A //sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT //sys Msync(b []byte, flags int) (err error) = SYS_MSYNC +//sys Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2 + +// Pipe2 begin + +//go:nosplit +func getPipe2Addr() *(func([]int, int) error) + +var Pipe2 = pipe2Enter + +func pipe2Enter(p []int, flags int) (err error) { + if funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, "") == 0 { + *getPipe2Addr() = pipe2Impl + } else { + *getPipe2Addr() = pipe2Error + } + return (*getPipe2Addr())(p, flags) +} + +func pipe2Impl(p []int, flags int) (err error) { + var pp [2]_C_int + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } else { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return +} +func pipe2Error(p []int, flags int) (err error) { + return fmt.Errorf("Pipe2 is not available on this system") +} + +// Pipe2 end + //sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL + +func Readdir(dir uintptr) (dirent *Dirent, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir)) + runtime.ExitSyscall() + dirent = (*Dirent)(unsafe.Pointer(r0)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//sys Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A +//sys Statfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A +//sys Syncfs(fd int) (err error) = SYS_SYNCFS //sys Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES //sys W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT //sys W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A //sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A -//sys unmount(filesystem string, mtm int) (err error) = SYS___UMOUNT_A +//sys unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A //sys Chroot(path string) (err error) = SYS___CHROOT_A //sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT -//sysnb Uname(buf *Utsname) (err error) = SYS___UNAME_A +//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A +//sys Unshare(flags int) (err error) = SYS_UNSHARE func Ptsname(fd int) (name string, err error) { - r0, _, e1 := syscall_syscall(SYS___PTSNAME_A, uintptr(fd), 0, 0) - name = u2s(unsafe.Pointer(r0)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd)) + runtime.ExitSyscall() + if r0 == 0 { + err = errnoErr2(e1, e2) + } else { + name = u2s(unsafe.Pointer(r0)) } return } @@ -272,13 +738,19 @@ func u2s(cstr unsafe.Pointer) string { } func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) + runtime.ExitSyscall() for i := 0; e1 == EAGAIN && i < 10; i++ { - _, _, _ = syscall_syscall(SYS_USLEEP, uintptr(10), 0, 0) - _, _, e1 = syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10)) + runtime.ExitSyscall() + runtime.EnterSyscall() + r0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) + runtime.ExitSyscall() } - if e1 != 0 { - err = errnoErr(e1) + if r0 != 0 { + err = errnoErr2(e1, e2) } return } @@ -288,9 +760,15 @@ func Madvise(b []byte, advice int) (err error) { return } +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + //sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) //sysnb Getgid() (gid int) //sysnb Getpid() (pid int) //sysnb Getpgid(pid int) (pgid int, err error) = SYS_GETPGID @@ -317,11 +795,14 @@ func Getrusage(who int, rusage *Rusage) (err error) { return } +//sys Getegid() (egid int) = SYS_GETEGID +//sys Geteuid() (euid int) = SYS_GETEUID //sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID //sysnb Getuid() (uid int) //sysnb Kill(pid int, sig Signal) (err error) //sys Lchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A //sys Link(path string, link string) (err error) = SYS___LINK_A +//sys Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_A //sys Listen(s int, n int) (err error) //sys lstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A @@ -332,15 +813,150 @@ func Lstat(path string, stat *Stat_t) (err error) { return } +// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/ +func isSpecialPath(path []byte) (v bool) { + var special = [4][8]byte{ + [8]byte{'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'}, + [8]byte{'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'}, + [8]byte{'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'}, + [8]byte{'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}} + + var i, j int + for i = 0; i < len(special); i++ { + for j = 0; j < len(special[i]); j++ { + if path[j] != special[i][j] { + break + } + } + if j == len(special[i]) { + return true + } + } + return false +} + +func realpath(srcpath string, abspath []byte) (pathlen int, errno int) { + var source [1024]byte + copy(source[:], srcpath) + source[len(srcpath)] = 0 + ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a() + []uintptr{uintptr(unsafe.Pointer(&source[0])), + uintptr(unsafe.Pointer(&abspath[0]))}) + if ret != 0 { + index := bytes.IndexByte(abspath[:], byte(0)) + if index != -1 { + return index, 0 + } + } else { + errptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno() + return 0, *errptr + } + return 0, 245 // EBADDATA 245 +} + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + n = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4, + []uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))})) + runtime.KeepAlive(unsafe.Pointer(_p0)) + if n == -1 { + value := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) + err = errnoErr(Errno(value)) + } else { + if buf[0] == '$' { + if isSpecialPath(buf[1:9]) { + cnt, err1 := realpath(path, buf) + if err1 == 0 { + n = cnt + } + } + } + } + return +} + +func impl_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + return n, err + } else { + if buf[0] == '$' { + if isSpecialPath(buf[1:9]) { + cnt, err1 := realpath(path, buf) + if err1 == 0 { + n = cnt + } + } + } + } + return +} + +//go:nosplit +func get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error)) + +var Readlinkat = enter_Readlinkat + +func enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + funcref := get_ReadlinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, "") == 0 { + *funcref = impl_Readlinkat + } else { + *funcref = error_Readlinkat + } + return (*funcref)(dirfd, path, buf) +} + +func error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + n = -1 + err = ENOSYS + return +} + //sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_A //sys Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A //sys Mknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A +//sys PivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_A //sys Pread(fd int, p []byte, offset int64) (n int, err error) //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) = SYS___READLINK_A +//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A +//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT //sys Rename(from string, to string) (err error) = SYS___RENAME_A +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A +//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_A //sys Rmdir(path string) (err error) = SYS___RMDIR_A //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Setegid(egid int) (err error) = SYS_SETEGID +//sys Seteuid(euid int) (err error) = SYS_SETEUID +//sys Sethostname(p []byte) (err error) = SYS___SETHOSTNAME_A +//sys Setns(fd int, nstype int) (err error) = SYS_SETNS //sys Setpriority(which int, who int, prio int) (err error) //sysnb Setpgid(pid int, pgid int) (err error) = SYS_SETPGID //sysnb Setrlimit(resource int, lim *Rlimit) (err error) @@ -360,32 +976,57 @@ func Stat(path string, sta *Stat_t) (err error) { } //sys Symlink(path string, link string) (err error) = SYS___SYMLINK_A +//sys Symlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_A //sys Sync() = SYS_SYNC //sys Truncate(path string, length int64) (err error) = SYS___TRUNCATE_A //sys Tcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR //sys Tcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR //sys Umask(mask int) (oldmask int) //sys Unlink(path string) (err error) = SYS___UNLINK_A +//sys Unlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_A //sys Utime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A //sys open(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A func Open(path string, mode int, perm uint32) (fd int, err error) { + if mode&O_ACCMODE == 0 { + mode |= O_RDONLY + } return open(path, mode, perm) } -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - wd, err := Getwd() - if err != nil { - return err +//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + if flags&O_ACCMODE == 0 { + flags |= O_RDONLY } + return openat(dirfd, path, flags, mode) +} - if err := Fchdir(dirfd); err != nil { - return err +//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A + +func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { + if how.Flags&O_ACCMODE == 0 { + how.Flags |= O_RDONLY } - defer Chdir(wd) + return openat2(dirfd, path, how, SizeofOpenHow) +} - return Mkfifo(path, mode) +func ZosFdToPath(dirfd int) (path string, err error) { + var buffer [1024]byte + runtime.EnterSyscall() + ret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))) + runtime.ExitSyscall() + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + CallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)) + return string(buffer[:zb]), nil + } + return "", errnoErr2(e1, e2) } //sys remove(path string) (err error) @@ -403,10 +1044,12 @@ func Getcwd(buf []byte) (n int, err error) { } else { p = unsafe.Pointer(&_zero) } - _, _, e := syscall_syscall(SYS___GETCWD_A, uintptr(p), uintptr(len(buf)), 0) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf))) + runtime.ExitSyscall() n = clen(buf) + 1 - if e != 0 { - err = errnoErr(e) + if r0 == 0 { + err = errnoErr2(e1, e2) } return } @@ -520,9 +1163,41 @@ func (w WaitStatus) StopSignal() Signal { func (w WaitStatus) TrapCause() int { return -1 } +//sys waitid(idType int, id int, info *Siginfo, options int) (err error) + +func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { + return waitid(idType, id, info, options) +} + //sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { +func impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage))) + runtime.ExitSyscall() + wpid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)) + +var Wait4 = enter_Wait4 + +func enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + funcref := get_Wait4Addr() + if funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, "") == 0 { + *funcref = impl_Wait4 + } else { + *funcref = legacyWait4 + } + return (*funcref)(pid, wstatus, options, rusage) +} + +func legacyWait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { // TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want. // At the moment rusage will not be touched. var status _C_int @@ -571,23 +1246,62 @@ func Pipe(p []int) (err error) { } var pp [2]_C_int err = pipe(&pp) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } + p[0] = int(pp[0]) + p[1] = int(pp[1]) return } //sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A func Utimes(path string, tv []Timeval) (err error) { + if tv == nil { + return utimes(path, nil) + } if len(tv) != 2 { return EINVAL } return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) } -func UtimesNano(path string, ts []Timespec) error { +//sys utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A + +func validUtimensat() bool { + if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil { + return name == "__utimensat_a" + } + } + return false +} + +// Begin UtimesNano + +//go:nosplit +func get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error)) + +var UtimesNano = enter_UtimesNano + +func enter_UtimesNano(path string, ts []Timespec) (err error) { + funcref := get_UtimesNanoAddr() + if validUtimensat() { + *funcref = utimesNanoImpl + } else { + *funcref = legacyUtimesNano + } + return (*funcref)(path, ts) +} + +func utimesNanoImpl(path string, ts []Timespec) (err error) { + if ts == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func legacyUtimesNano(path string, ts []Timespec) (err error) { if len(ts) != 2 { return EINVAL } @@ -600,6 +1314,70 @@ func UtimesNano(path string, ts []Timespec) error { return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) } +// End UtimesNano + +// Begin UtimesNanoAt + +//go:nosplit +func get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error)) + +var UtimesNanoAt = enter_UtimesNanoAt + +func enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { + funcref := get_UtimesNanoAtAddr() + if validUtimensat() { + *funcref = utimesNanoAtImpl + } else { + *funcref = legacyUtimesNanoAt + } + return (*funcref)(dirfd, path, ts, flags) +} + +func utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +func legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { + if path[0] != '/' { + dirPath, err := ZosFdToPath(dirfd) + if err != nil { + return err + } + path = dirPath + "/" + path + } + if flags == AT_SYMLINK_NOFOLLOW { + if len(ts) != 2 { + return EINVAL + } + + if ts[0].Nsec >= 5e8 { + ts[0].Sec++ + } + ts[0].Nsec = 0 + if ts[1].Nsec >= 5e8 { + ts[1].Sec++ + } + ts[1].Nsec = 0 + + // Not as efficient as it could be because Timespec and + // Timeval have different types in the different OSes + tv := []Timeval{ + NsecToTimeval(TimespecToNsec(ts[0])), + NsecToTimeval(TimespecToNsec(ts[1])), + } + return Lutimes(path, tv) + } + return UtimesNano(path, ts) +} + +// End UtimesNanoAt + func Getsockname(fd int) (sa Sockaddr, err error) { var rsa RawSockaddrAny var len _Socklen = SizeofSockaddrAny @@ -1191,62 +1969,41 @@ func Opendir(name string) (uintptr, error) { if err != nil { return 0, err } - dir, _, e := syscall_syscall(SYS___OPENDIR_A, uintptr(unsafe.Pointer(p)), 0, 0) - runtime.KeepAlive(unsafe.Pointer(p)) - if e != 0 { - err = errnoErr(e) - } - return dir, err -} - -// clearsyscall.Errno resets the errno value to 0. -func clearErrno() - -func Readdir(dir uintptr) (*Dirent, error) { - var ent Dirent - var res uintptr - // __readdir_r_a returns errno at the end of the directory stream, rather than 0. - // Therefore to avoid false positives we clear errno before calling it. - - // TODO(neeilan): Commented this out to get sys/unix compiling on z/OS. Uncomment and fix. Error: "undefined: clearsyscall" - //clearsyscall.Errno() // TODO(mundaym): check pre-emption rules. - - e, _, _ := syscall_syscall(SYS___READDIR_R_A, dir, uintptr(unsafe.Pointer(&ent)), uintptr(unsafe.Pointer(&res))) - var err error - if e != 0 { - err = errnoErr(Errno(e)) - } - if res == 0 { - return nil, err - } - return &ent, err -} - -func readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { - r0, _, e1 := syscall_syscall(SYS___READDIR_R_A, dirp, uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - if int64(r0) == -1 { - err = errnoErr(Errno(e1)) + err = nil + runtime.EnterSyscall() + dir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p))) + runtime.ExitSyscall() + runtime.KeepAlive(unsafe.Pointer(p)) + if dir == 0 { + err = errnoErr2(e1, e2) } - return + return dir, err } +// clearsyscall.Errno resets the errno value to 0. +func clearErrno() + func Closedir(dir uintptr) error { - _, _, e := syscall_syscall(SYS_CLOSEDIR, dir, 0, 0) - if e != 0 { - return errnoErr(e) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir) + runtime.ExitSyscall() + if r0 != 0 { + return errnoErr2(e1, e2) } return nil } func Seekdir(dir uintptr, pos int) { - _, _, _ = syscall_syscall(SYS_SEEKDIR, dir, uintptr(pos), 0) + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos)) + runtime.ExitSyscall() } func Telldir(dir uintptr) (int, error) { - p, _, e := syscall_syscall(SYS_TELLDIR, dir, 0, 0) + p, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir) pos := int(p) - if pos == -1 { - return pos, errnoErr(e) + if int64(p) == -1 { + return pos, errnoErr2(e1, e2) } return pos, nil } @@ -1261,19 +2018,55 @@ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { *(*int64)(unsafe.Pointer(&flock[4])) = lk.Start *(*int64)(unsafe.Pointer(&flock[12])) = lk.Len *(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid - _, _, errno := syscall_syscall(SYS_FCNTL, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) + runtime.ExitSyscall() lk.Type = *(*int16)(unsafe.Pointer(&flock[0])) lk.Whence = *(*int16)(unsafe.Pointer(&flock[2])) lk.Start = *(*int64)(unsafe.Pointer(&flock[4])) lk.Len = *(*int64)(unsafe.Pointer(&flock[12])) lk.Pid = *(*int32)(unsafe.Pointer(&flock[20])) - if errno == 0 { + if r0 == 0 { return nil } - return errno + return errnoErr2(e1, e2) +} + +func impl_Flock(fd int, how int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FlockAddr() *(func(fd int, how int) (err error)) + +var Flock = enter_Flock + +func validFlock(fp uintptr) bool { + if funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil { + return name == "flock" + } + } + return false +} + +func enter_Flock(fd int, how int) (err error) { + funcref := get_FlockAddr() + if validFlock(GetZosLibVec() + SYS_FLOCK<<4) { + *funcref = impl_Flock + } else { + *funcref = legacyFlock + } + return (*funcref)(fd, how) } -func Flock(fd int, how int) error { +func legacyFlock(fd int, how int) error { var flock_type int16 var fcntl_cmd int @@ -1307,41 +2100,51 @@ func Flock(fd int, how int) error { } func Mlock(b []byte) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) } return } func Mlock2(b []byte, flags int) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) } return } func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) } return } func Munlock(b []byte) (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) } return } func Munlockall() (err error) { - _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) } return } @@ -1372,15 +2175,104 @@ func ClockGettime(clockid int32, ts *Timespec) error { return nil } -func Statfs(path string, stat *Statfs_t) (err error) { - fd, err := open(path, O_RDONLY, 0) - defer Close(fd) - if err != nil { - return err +// Chtag + +//go:nosplit +func get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error) + +var Chtag = enter_Chtag + +func enter_Chtag(path string, ccsid uint64, textbit uint64) error { + funcref := get_ChtagAddr() + if validSetxattr() { + *funcref = impl_Chtag + } else { + *funcref = legacy_Chtag + } + return (*funcref)(path, ccsid, textbit) +} + +func legacy_Chtag(path string, ccsid uint64, textbit uint64) error { + tag := ccsid<<16 | textbit<<15 + var tag_buff [8]byte + DecodeData(tag_buff[:], 8, tag) + return Setxattr(path, "filetag", tag_buff[:], XATTR_REPLACE) +} + +func impl_Chtag(path string, ccsid uint64, textbit uint64) error { + tag := ccsid<<16 | textbit<<15 + var tag_buff [4]byte + DecodeData(tag_buff[:], 4, tag) + return Setxattr(path, "system.filetag", tag_buff[:], XATTR_REPLACE) +} + +// End of Chtag + +// Nanosleep + +//go:nosplit +func get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error) + +var Nanosleep = enter_Nanosleep + +func enter_Nanosleep(time *Timespec, leftover *Timespec) error { + funcref := get_NanosleepAddr() + if funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, "") == 0 { + *funcref = impl_Nanosleep + } else { + *funcref = legacyNanosleep + } + return (*funcref)(time, leftover) +} + +func impl_Nanosleep(time *Timespec, leftover *Timespec) error { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) + runtime.ExitSyscall() + if int64(r0) == -1 { + return errnoErr2(e1, e2) + } + return nil +} + +func legacyNanosleep(time *Timespec, leftover *Timespec) error { + t0 := runtime.Nanotime1() + var secrem uint32 + var nsecrem uint32 + total := time.Sec*1000000000 + time.Nsec + elapsed := runtime.Nanotime1() - t0 + var rv int32 + var rc int32 + var err error + // repeatedly sleep for 1 second until less than 1 second left + for total-elapsed > 1000000000 { + rv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem) + if rv != 0 && rc != 112 { // 112 is EAGAIN + if leftover != nil && rc == 120 { // 120 is EINTR + leftover.Sec = int64(secrem) + leftover.Nsec = int64(nsecrem) + } + err = Errno(rc) + return err + } + elapsed = runtime.Nanotime1() - t0 + } + // sleep the remainder + if total > elapsed { + rv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem) + } + if leftover != nil && rc == 120 { + leftover.Sec = int64(secrem) + leftover.Nsec = int64(nsecrem) } - return Fstatfs(fd, stat) + if rv != 0 && rc != 112 { + err = Errno(rc) + } + return err } +// End of Nanosleep + var ( Stdin = 0 Stdout = 1 @@ -1395,6 +2287,9 @@ var ( errENOENT error = syscall.ENOENT ) +var ZosTraceLevel int +var ZosTracefile *os.File + var ( signalNameMapOnce sync.Once signalNameMap map[string]syscall.Signal @@ -1416,6 +2311,56 @@ func errnoErr(e Errno) error { return e } +var reg *regexp.Regexp + +// enhanced with zos specific errno2 +func errnoErr2(e Errno, e2 uintptr) error { + switch e { + case 0: + return nil + case EAGAIN: + return errEAGAIN + /* + Allow the retrieval of errno2 for EINVAL and ENOENT on zos + case EINVAL: + return errEINVAL + case ENOENT: + return errENOENT + */ + } + if ZosTraceLevel > 0 { + var name string + if reg == nil { + reg = regexp.MustCompile("(^unix\\.[^/]+$|.*\\/unix\\.[^/]+$)") + } + i := 1 + pc, file, line, ok := runtime.Caller(i) + if ok { + name = runtime.FuncForPC(pc).Name() + } + for ok && reg.MatchString(runtime.FuncForPC(pc).Name()) { + i += 1 + pc, file, line, ok = runtime.Caller(i) + } + if ok { + if ZosTracefile == nil { + ZosConsolePrintf("From %s:%d\n", file, line) + ZosConsolePrintf("%s: %s (errno2=0x%x)\n", name, e.Error(), e2) + } else { + fmt.Fprintf(ZosTracefile, "From %s:%d\n", file, line) + fmt.Fprintf(ZosTracefile, "%s: %s (errno2=0x%x)\n", name, e.Error(), e2) + } + } else { + if ZosTracefile == nil { + ZosConsolePrintf("%s (errno2=0x%x)\n", e.Error(), e2) + } else { + fmt.Fprintf(ZosTracefile, "%s (errno2=0x%x)\n", e.Error(), e2) + } + } + } + return e +} + // ErrnoName returns the error name for error number e. func ErrnoName(e Errno) string { i := sort.Search(len(errorList), func(i int) bool { @@ -1474,6 +2419,9 @@ func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (d return nil, EINVAL } + // Set __MAP_64 by default + flags |= __MAP_64 + // Map the requested memory. addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) if errno != nil { @@ -1520,14 +2468,6 @@ func (m *mmapper) Munmap(data []byte) (err error) { return nil } -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - func Read(fd int, p []byte) (n int, err error) { n, err = read(fd, p) if raceenabled { @@ -1786,83 +2726,170 @@ func Exec(argv0 string, argv []string, envv []string) error { return syscall.Exec(argv0, argv, envv) } -func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { +func Getag(path string) (ccsid uint16, flag uint16, err error) { + var val [8]byte + sz, err := Getxattr(path, "ccsid", val[:]) + if err != nil { + return + } + ccsid = uint16(EncodeData(val[0:sz])) + sz, err = Getxattr(path, "flags", val[:]) + if err != nil { + return + } + flag = uint16(EncodeData(val[0:sz]) >> 15) + return +} + +// Mount begin +func impl_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(source) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(target) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + var _p3 *byte + _p3, err = BytePtrFromString(data) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error)) + +var Mount = enter_Mount + +func enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + funcref := get_MountAddr() + if validMount() { + *funcref = impl_Mount + } else { + *funcref = legacyMount + } + return (*funcref)(source, target, fstype, flags, data) +} + +func legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) { if needspace := 8 - len(fstype); needspace <= 0 { - fstype = fstype[:8] + fstype = fstype[0:8] } else { - fstype += " "[:needspace] + fstype += " "[0:needspace] } return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) } -func Unmount(name string, mtm int) (err error) { +func validMount() bool { + if funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil { + return name == "__mount1_a" + } + } + return false +} + +// Mount end + +// Unmount begin +func impl_Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_UnmountAddr() *(func(target string, flags int) (err error)) + +var Unmount = enter_Unmount + +func enter_Unmount(target string, flags int) (err error) { + funcref := get_UnmountAddr() + if funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, "") == 0 { + *funcref = impl_Unmount + } else { + *funcref = legacyUnmount + } + return (*funcref)(target, flags) +} + +func legacyUnmount(name string, mtm int) (err error) { // mountpoint is always a full path and starts with a '/' // check if input string is not a mountpoint but a filesystem name if name[0] != '/' { - return unmount(name, mtm) + return unmount_LE(name, mtm) } // treat name as mountpoint b2s := func(arr []byte) string { - nulli := bytes.IndexByte(arr, 0) - if nulli == -1 { - return string(arr) - } else { - return string(arr[:nulli]) + var str string + for i := 0; i < len(arr); i++ { + if arr[i] == 0 { + str = string(arr[:i]) + break + } } + return str } var buffer struct { header W_Mnth fsinfo [64]W_Mntent } - fsCount, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) - if err != nil { - return err - } - if fsCount == 0 { - return EINVAL - } - for i := 0; i < fsCount; i++ { - if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { - err = unmount(b2s(buffer.fsinfo[i].Fsname[:]), mtm) - break + fs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) + if err == nil { + err = EINVAL + for i := 0; i < fs_count; i++ { + if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { + err = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm) + break + } } + } else if fs_count == 0 { + err = EINVAL } return err } -func fdToPath(dirfd int) (path string, err error) { - var buffer [1024]byte - // w_ctrl() - ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, - []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - // __e2a_l() - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, - []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) - return string(buffer[:zb]), nil - } - // __errno() - errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, - []uintptr{})))) - // __errno2() - errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, - []uintptr{})) - // strerror_r() - ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, - []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) - } else { - return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) +// Unmount end + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true } func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { @@ -1904,7 +2931,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { } // Get path from fd to avoid unavailable call (fdopendir) - path, err := fdToPath(fd) + path, err := ZosFdToPath(fd) if err != nil { return 0, err } @@ -1918,7 +2945,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { for { var entryLE direntLE var entrypLE *direntLE - e := readdir_r(d, &entryLE, &entrypLE) + e := Readdir_r(d, &entryLE, &entrypLE) if e != nil { return n, e } @@ -1964,23 +2991,127 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { return n, nil } -func ReadDirent(fd int, buf []byte) (n int, err error) { - var base = (*uintptr)(unsafe.Pointer(new(uint64))) - return Getdirentries(fd, buf, base) +func Err2ad() (eadd *int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4) + eadd = (*int)(unsafe.Pointer(r0)) + return } -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +func ZosConsolePrintf(format string, v ...interface{}) (int, error) { + type __cmsg struct { + _ uint16 + _ [2]uint8 + __msg_length uint32 + __msg uintptr + _ [4]uint8 + } + msg := fmt.Sprintf(format, v...) + strptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data) + len := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len + cmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)} + cmd := uint32(0) + runtime.EnterSyscall() + rc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd))) + runtime.ExitSyscall() + if rc != 0 { + return 0, fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) + } + return 0, nil +} +func ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) { + if nullterm { + ebcdicBytes = []byte(str + "\x00") + } else { + ebcdicBytes = []byte(str) + } + A2e(ebcdicBytes) + return +} +func ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) { + res := make([]byte, len(b)) + copy(res, b) + E2a(res) + if trimRight { + str = string(bytes.TrimRight(res, " \x00")) + } else { + str = string(res) + } + return } -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +func fdToPath(dirfd int) (path string, err error) { + var buffer [1024]byte + // w_ctrl() + ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, + []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + // __e2a_l() + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, + []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) + return string(buffer[:zb]), nil + } + // __errno() + errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, + []uintptr{})))) + // __errno2() + errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, + []uintptr{})) + // strerror_r() + ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, + []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) + } else { + return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) + } } -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false +func impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error)) + +var Mkfifoat = enter_Mkfifoat + +func enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) { + funcref := get_MkfifoatAddr() + if funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, "") == 0 { + *funcref = impl_Mkfifoat + } else { + *funcref = legacy_Mkfifoat + } + return (*funcref)(dirfd, path, mode) +} + +func legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) { + dirname, err := ZosFdToPath(dirfd) + if err != nil { + return err + } + return Mkfifo(dirname+"/"+path, mode) } + +//sys Posix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT +//sys Grantpt(fildes int) (rc int, err error) = SYS_GRANTPT +//sys Unlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/vendor/golang.org/x/sys/unix/sysvshm_unix.go index 79a84f18b..672d6b0a8 100644 --- a/vendor/golang.org/x/sys/unix/sysvshm_unix.go +++ b/vendor/golang.org/x/sys/unix/sysvshm_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build (darwin && !ios) || linux +//go:build (darwin && !ios) || linux || zos package unix diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go index 9eb0db664..8b7977a28 100644 --- a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +++ b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build darwin && !ios +//go:build (darwin && !ios) || zos package unix diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index 36bf8399f..93a38a97d 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -491,6 +491,7 @@ const ( BPF_F_REPLACE = 0x4 BPF_F_SLEEPABLE = 0x10 BPF_F_STRICT_ALIGNMENT = 0x1 + BPF_F_TEST_REG_INVARIANTS = 0x80 BPF_F_TEST_RND_HI32 = 0x4 BPF_F_TEST_RUN_ON_CPU = 0x1 BPF_F_TEST_STATE_FREQ = 0x8 @@ -1697,6 +1698,7 @@ const ( KEXEC_ARCH_S390 = 0x160000 KEXEC_ARCH_SH = 0x2a0000 KEXEC_ARCH_X86_64 = 0x3e0000 + KEXEC_FILE_DEBUG = 0x8 KEXEC_FILE_NO_INITRAMFS = 0x4 KEXEC_FILE_ON_CRASH = 0x2 KEXEC_FILE_UNLOAD = 0x1 @@ -1898,6 +1900,7 @@ const ( MNT_DETACH = 0x2 MNT_EXPIRE = 0x4 MNT_FORCE = 0x1 + MNT_ID_REQ_SIZE_VER0 = 0x18 MODULE_INIT_COMPRESSED_FILE = 0x4 MODULE_INIT_IGNORE_MODVERSIONS = 0x1 MODULE_INIT_IGNORE_VERMAGIC = 0x2 @@ -2302,6 +2305,7 @@ const ( PERF_AUX_FLAG_PARTIAL = 0x4 PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_BRANCH_ENTRY_INFO_BITS_MAX = 0x21 PERF_BR_ARM64_DEBUG_DATA = 0x7 PERF_BR_ARM64_DEBUG_EXIT = 0x5 PERF_BR_ARM64_DEBUG_HALT = 0x4 @@ -3168,6 +3172,7 @@ const ( STATX_GID = 0x10 STATX_INO = 0x100 STATX_MNT_ID = 0x1000 + STATX_MNT_ID_UNIQUE = 0x4000 STATX_MODE = 0x2 STATX_MTIME = 0x40 STATX_NLINK = 0x4 @@ -3562,12 +3567,16 @@ const ( XDP_RX_RING = 0x2 XDP_SHARED_UMEM = 0x1 XDP_STATISTICS = 0x7 + XDP_TXMD_FLAGS_CHECKSUM = 0x2 + XDP_TXMD_FLAGS_TIMESTAMP = 0x1 + XDP_TX_METADATA = 0x2 XDP_TX_RING = 0x3 XDP_UMEM_COMPLETION_RING = 0x6 XDP_UMEM_FILL_RING = 0x5 XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 XDP_UMEM_PGOFF_FILL_RING = 0x100000000 XDP_UMEM_REG = 0x4 + XDP_UMEM_TX_SW_CSUM = 0x2 XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 XDP_USE_NEED_WAKEUP = 0x8 XDP_USE_SG = 0x10 diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go index 4dfd2e051..da08b2ab3 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go @@ -10,41 +10,99 @@ package unix const ( - BRKINT = 0x0001 - CLOCK_MONOTONIC = 0x1 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x3 - CS8 = 0x0030 - CSIZE = 0x0030 - ECHO = 0x00000008 - ECHONL = 0x00000001 - FD_CLOEXEC = 0x01 - FD_CLOFORK = 0x02 - FNDELAY = 0x04 - F_CLOSFD = 9 - F_CONTROL_CVT = 13 - F_DUPFD = 0 - F_DUPFD2 = 8 - F_GETFD = 1 - F_GETFL = 259 - F_GETLK = 5 - F_GETOWN = 10 - F_OK = 0x0 - F_RDLCK = 1 - F_SETFD = 2 - F_SETFL = 4 - F_SETLK = 6 - F_SETLKW = 7 - F_SETOWN = 11 - F_SETTAG = 12 - F_UNLCK = 3 - F_WRLCK = 2 - FSTYPE_ZFS = 0xe9 //"Z" - FSTYPE_HFS = 0xc8 //"H" - FSTYPE_NFS = 0xd5 //"N" - FSTYPE_TFS = 0xe3 //"T" - FSTYPE_AUTOMOUNT = 0xc1 //"A" + BRKINT = 0x0001 + CLOCAL = 0x1 + CLOCK_MONOTONIC = 0x1 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLONE_NEWIPC = 0x08000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x00020000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWUTS = 0x04000000 + CLONE_PARENT = 0x00008000 + CS8 = 0x0030 + CSIZE = 0x0030 + ECHO = 0x00000008 + ECHONL = 0x00000001 + EFD_SEMAPHORE = 0x00002000 + EFD_CLOEXEC = 0x00001000 + EFD_NONBLOCK = 0x00000004 + EPOLL_CLOEXEC = 0x00001000 + EPOLL_CTL_ADD = 0 + EPOLL_CTL_MOD = 1 + EPOLL_CTL_DEL = 2 + EPOLLRDNORM = 0x0001 + EPOLLRDBAND = 0x0002 + EPOLLIN = 0x0003 + EPOLLOUT = 0x0004 + EPOLLWRBAND = 0x0008 + EPOLLPRI = 0x0010 + EPOLLERR = 0x0020 + EPOLLHUP = 0x0040 + EPOLLEXCLUSIVE = 0x20000000 + EPOLLONESHOT = 0x40000000 + FD_CLOEXEC = 0x01 + FD_CLOFORK = 0x02 + FD_SETSIZE = 0x800 + FNDELAY = 0x04 + F_CLOSFD = 9 + F_CONTROL_CVT = 13 + F_DUPFD = 0 + F_DUPFD2 = 8 + F_GETFD = 1 + F_GETFL = 259 + F_GETLK = 5 + F_GETOWN = 10 + F_OK = 0x0 + F_RDLCK = 1 + F_SETFD = 2 + F_SETFL = 4 + F_SETLK = 6 + F_SETLKW = 7 + F_SETOWN = 11 + F_SETTAG = 12 + F_UNLCK = 3 + F_WRLCK = 2 + FSTYPE_ZFS = 0xe9 //"Z" + FSTYPE_HFS = 0xc8 //"H" + FSTYPE_NFS = 0xd5 //"N" + FSTYPE_TFS = 0xe3 //"T" + FSTYPE_AUTOMOUNT = 0xc1 //"A" + GRND_NONBLOCK = 1 + GRND_RANDOM = 2 + HUPCL = 0x0100 // Hang up on last close + IN_CLOEXEC = 0x00001000 + IN_NONBLOCK = 0x00000004 + IN_ACCESS = 0x00000001 + IN_MODIFY = 0x00000002 + IN_ATTRIB = 0x00000004 + IN_CLOSE_WRITE = 0x00000008 + IN_CLOSE_NOWRITE = 0x00000010 + IN_OPEN = 0x00000020 + IN_MOVED_FROM = 0x00000040 + IN_MOVED_TO = 0x00000080 + IN_CREATE = 0x00000100 + IN_DELETE = 0x00000200 + IN_DELETE_SELF = 0x00000400 + IN_MOVE_SELF = 0x00000800 + IN_UNMOUNT = 0x00002000 + IN_Q_OVERFLOW = 0x00004000 + IN_IGNORED = 0x00008000 + IN_CLOSE = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) + IN_MOVE = (IN_MOVED_FROM | IN_MOVED_TO) + IN_ALL_EVENTS = (IN_ACCESS | IN_MODIFY | IN_ATTRIB | + IN_CLOSE | IN_OPEN | IN_MOVE | + IN_CREATE | IN_DELETE | IN_DELETE_SELF | + IN_MOVE_SELF) + IN_ONLYDIR = 0x01000000 + IN_DONT_FOLLOW = 0x02000000 + IN_EXCL_UNLINK = 0x04000000 + IN_MASK_CREATE = 0x10000000 + IN_MASK_ADD = 0x20000000 + IN_ISDIR = 0x40000000 + IN_ONESHOT = 0x80000000 IP6F_MORE_FRAG = 0x0001 IP6F_OFF_MASK = 0xfff8 IP6F_RESERVED_MASK = 0x0006 @@ -152,10 +210,18 @@ const ( IP_PKTINFO = 101 IP_RECVPKTINFO = 102 IP_TOS = 2 - IP_TTL = 3 + IP_TTL = 14 IP_UNBLOCK_SOURCE = 11 + ICMP6_FILTER = 1 + MCAST_INCLUDE = 0 + MCAST_EXCLUDE = 1 + MCAST_JOIN_GROUP = 40 + MCAST_LEAVE_GROUP = 41 + MCAST_JOIN_SOURCE_GROUP = 42 + MCAST_LEAVE_SOURCE_GROUP = 43 + MCAST_BLOCK_SOURCE = 44 + MCAST_UNBLOCK_SOURCE = 46 ICANON = 0x0010 - ICMP6_FILTER = 0x26 ICRNL = 0x0002 IEXTEN = 0x0020 IGNBRK = 0x0004 @@ -165,10 +231,10 @@ const ( ISTRIP = 0x0080 IXON = 0x0200 IXOFF = 0x0100 - LOCK_SH = 0x1 // Not exist on zOS - LOCK_EX = 0x2 // Not exist on zOS - LOCK_NB = 0x4 // Not exist on zOS - LOCK_UN = 0x8 // Not exist on zOS + LOCK_SH = 0x1 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_UN = 0x8 POLLIN = 0x0003 POLLOUT = 0x0004 POLLPRI = 0x0010 @@ -182,15 +248,29 @@ const ( MAP_PRIVATE = 0x1 // changes are private MAP_SHARED = 0x2 // changes are shared MAP_FIXED = 0x4 // place exactly - MCAST_JOIN_GROUP = 40 - MCAST_LEAVE_GROUP = 41 - MCAST_JOIN_SOURCE_GROUP = 42 - MCAST_LEAVE_SOURCE_GROUP = 43 - MCAST_BLOCK_SOURCE = 44 - MCAST_UNBLOCK_SOURCE = 45 + __MAP_MEGA = 0x8 + __MAP_64 = 0x10 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 MS_SYNC = 0x1 // msync - synchronous writes MS_ASYNC = 0x2 // asynchronous writes MS_INVALIDATE = 0x4 // invalidate mappings + MS_BIND = 0x00001000 + MS_MOVE = 0x00002000 + MS_NOSUID = 0x00000002 + MS_PRIVATE = 0x00040000 + MS_REC = 0x00004000 + MS_REMOUNT = 0x00008000 + MS_RDONLY = 0x00000001 + MS_UNBINDABLE = 0x00020000 + MNT_DETACH = 0x00000004 + ZOSDSFS_SUPER_MAGIC = 0x44534653 // zOS DSFS + NFS_SUPER_MAGIC = 0x6969 // NFS + NSFS_MAGIC = 0x6e736673 // PROCNS + PROC_SUPER_MAGIC = 0x9fa0 // proc FS + ZOSTFS_SUPER_MAGIC = 0x544653 // zOS TFS + ZOSUFS_SUPER_MAGIC = 0x554653 // zOS UFS + ZOSZFS_SUPER_MAGIC = 0x5A4653 // zOS ZFS MTM_RDONLY = 0x80000000 MTM_RDWR = 0x40000000 MTM_UMOUNT = 0x10000000 @@ -205,13 +285,20 @@ const ( MTM_REMOUNT = 0x00000100 MTM_NOSECURITY = 0x00000080 NFDBITS = 0x20 + ONLRET = 0x0020 // NL performs CR function O_ACCMODE = 0x03 O_APPEND = 0x08 O_ASYNCSIG = 0x0200 O_CREAT = 0x80 + O_DIRECT = 0x00002000 + O_NOFOLLOW = 0x00004000 + O_DIRECTORY = 0x00008000 + O_PATH = 0x00080000 + O_CLOEXEC = 0x00001000 O_EXCL = 0x40 O_GETFL = 0x0F O_LARGEFILE = 0x0400 + O_NDELAY = 0x4 O_NONBLOCK = 0x04 O_RDONLY = 0x02 O_RDWR = 0x03 @@ -248,6 +335,7 @@ const ( AF_IUCV = 17 AF_LAT = 14 AF_LINK = 18 + AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX AF_MAX = 30 AF_NBS = 7 AF_NDD = 23 @@ -285,15 +373,33 @@ const ( RLIMIT_AS = 5 RLIMIT_NOFILE = 6 RLIMIT_MEMLIMIT = 7 + RLIMIT_MEMLOCK = 0x8 RLIM_INFINITY = 2147483647 + SCHED_FIFO = 0x2 + SCM_CREDENTIALS = 0x2 SCM_RIGHTS = 0x01 SF_CLOSE = 0x00000002 SF_REUSE = 0x00000001 + SHM_RND = 0x2 + SHM_RDONLY = 0x1 + SHMLBA = 0x1000 + IPC_STAT = 0x3 + IPC_SET = 0x2 + IPC_RMID = 0x1 + IPC_PRIVATE = 0x0 + IPC_CREAT = 0x1000000 + __IPC_MEGA = 0x4000000 + __IPC_SHAREAS = 0x20000000 + __IPC_BELOWBAR = 0x10000000 + IPC_EXCL = 0x2000000 + __IPC_GIGA = 0x8000000 SHUT_RD = 0 SHUT_RDWR = 2 SHUT_WR = 1 + SOCK_CLOEXEC = 0x00001000 SOCK_CONN_DGRAM = 6 SOCK_DGRAM = 2 + SOCK_NONBLOCK = 0x800 SOCK_RAW = 3 SOCK_RDM = 4 SOCK_SEQPACKET = 5 @@ -378,8 +484,6 @@ const ( S_IFMST = 0x00FF0000 TCP_KEEPALIVE = 0x8 TCP_NODELAY = 0x1 - TCP_INFO = 0xb - TCP_USER_TIMEOUT = 0x1 TIOCGWINSZ = 0x4008a368 TIOCSWINSZ = 0x8008a367 TIOCSBRK = 0x2000a77b @@ -427,7 +531,10 @@ const ( VSUSP = 9 VTIME = 10 WCONTINUED = 0x4 + WEXITED = 0x8 WNOHANG = 0x1 + WNOWAIT = 0x20 + WSTOPPED = 0x10 WUNTRACED = 0x2 _BPX_SWAP = 1 _BPX_NONSWAP = 2 @@ -452,8 +559,28 @@ const ( MADV_FREE = 15 // for Linux compatibility -- no zos semantics MADV_WIPEONFORK = 16 // for Linux compatibility -- no zos semantics MADV_KEEPONFORK = 17 // for Linux compatibility -- no zos semantics - AT_SYMLINK_NOFOLLOW = 1 // for Unix compatibility -- no zos semantics - AT_FDCWD = 2 // for Unix compatibility -- no zos semantics + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 + XATTR_CREATE = 0x1 + XATTR_REPLACE = 0x2 + P_PID = 0 + P_PGID = 1 + P_ALL = 2 + PR_SET_NAME = 15 + PR_GET_NAME = 16 + PR_SET_NO_NEW_PRIVS = 38 + PR_GET_NO_NEW_PRIVS = 39 + PR_SET_DUMPABLE = 4 + PR_GET_DUMPABLE = 3 + PR_SET_PDEATHSIG = 1 + PR_GET_PDEATHSIG = 2 + PR_SET_CHILD_SUBREAPER = 36 + PR_GET_CHILD_SUBREAPER = 37 + AT_FDCWD = -100 + AT_EACCESS = 0x200 + AT_EMPTY_PATH = 0x1000 + AT_REMOVEDIR = 0x200 + RENAME_NOREPLACE = 1 << 0 ) const ( @@ -476,6 +603,7 @@ const ( EMLINK = Errno(125) ENAMETOOLONG = Errno(126) ENFILE = Errno(127) + ENOATTR = Errno(265) ENODEV = Errno(128) ENOENT = Errno(129) ENOEXEC = Errno(130) @@ -700,7 +828,7 @@ var errorList = [...]struct { {145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."}, {146, "EDC5146I", "Too many levels of symbolic links."}, {147, "EDC5147I", "Illegal byte sequence."}, - {148, "", ""}, + {148, "EDC5148I", "The named attribute or data not available."}, {149, "EDC5149I", "Value Overflow Error."}, {150, "EDC5150I", "UNIX System Services is not active."}, {151, "EDC5151I", "Dynamic allocation error."}, @@ -743,6 +871,7 @@ var errorList = [...]struct { {259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."}, {260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."}, {262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."}, + {265, "EDC5265I", "The named attribute not available."}, {1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."}, {1001, "EDC8001I", "An error was found in the IUCV header."}, {1002, "EDC8002I", "A socket descriptor is out of range."}, diff --git a/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s new file mode 100644 index 000000000..b77ff5db9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s @@ -0,0 +1,364 @@ +// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build zos && s390x +#include "textflag.h" + +// provide the address of function variable to be fixed up. + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Flistxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fremovexattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fgetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fsetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·accept4(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Removexattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Dup3(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Dirfd(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollCreate(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollCreate1(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollCtl(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollPwait(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollWait(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Eventfd(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Faccessat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fchmodat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fchownat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fdatasync(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·fstatat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lgetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lsetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fstatfs(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Futimes(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Futimesat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Getrandom(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyInit(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyInit1(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyAddWatch(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyRmWatch(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Listxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Llistxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lremovexattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lutimes(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Statfs(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Syncfs(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Unshare(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Linkat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mkdirat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mknodat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·PivotRoot(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Prctl(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Prlimit(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Renameat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Renameat2(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Sethostname(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Setns(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Symlinkat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Unlinkat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·openat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·openat2(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·utimensat(SB), R8 + MOVD R8, ret+0(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go index 94f011238..7ccf66b7e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -tags zos,s390x syscall_zos_s390x.go +// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s // Code generated by the command above; see README.md. DO NOT EDIT. //go:build zos && s390x @@ -6,17 +6,100 @@ package unix import ( + "runtime" + "syscall" "unsafe" ) +var _ syscall.Errno + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) + runtime.ExitSyscall() val = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Flistxattr(fd int, dest []byte) (sz int, err error) { + var _p0 unsafe.Pointer + if len(dest) > 0 { + _p0 = unsafe.Pointer(&dest[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error)) + +var Flistxattr = enter_Flistxattr + +func enter_Flistxattr(fd int, dest []byte) (sz int, err error) { + funcref := get_FlistxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, "") == 0 { + *funcref = impl_Flistxattr + } else { + *funcref = error_Flistxattr + } + return (*funcref)(fd, dest) +} + +func error_Flistxattr(fd int, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fremovexattr(fd int, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FremovexattrAddr() *(func(fd int, attr string) (err error)) + +var Fremovexattr = enter_Fremovexattr + +func enter_Fremovexattr(fd int, attr string) (err error) { + funcref := get_FremovexattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, "") == 0 { + *funcref = impl_Fremovexattr + } else { + *funcref = error_Fremovexattr } + return (*funcref)(fd, attr) +} + +func error_Fremovexattr(fd int, attr string) (err error) { + err = ENOSYS return } @@ -29,10 +112,12 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) + runtime.ExitSyscall() n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -46,31 +131,159 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) + runtime.ExitSyscall() n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error)) + +var Fgetxattr = enter_Fgetxattr + +func enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + funcref := get_FgetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, "") == 0 { + *funcref = impl_Fgetxattr + } else { + *funcref = error_Fgetxattr + } + return (*funcref)(fd, attr, dest) +} + +func error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(data) > 0 { + _p1 = unsafe.Pointer(&data[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error)) + +var Fsetxattr = enter_Fsetxattr + +func enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { + funcref := get_FsetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, "") == 0 { + *funcref = impl_Fsetxattr + } else { + *funcref = error_Fsetxattr } + return (*funcref)(fd, attr, data, flag) +} + +func error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(SYS___ACCEPT_A, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)) + runtime.ExitSyscall() fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)) + +var accept4 = enter_accept4 + +func enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + funcref := get_accept4Addr() + if funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, "") == 0 { + *funcref = impl_accept4 + } else { + *funcref = error_accept4 } + return (*funcref)(s, rsa, addrlen, flags) +} + +func error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + fd = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(SYS___BIND_A, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -78,9 +291,11 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(SYS___CONNECT_A, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -88,10 +303,10 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -99,9 +314,9 @@ func getgroups(n int, list *_Gid_t) (nn int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -109,9 +324,11 @@ func setgroups(n int, list *_Gid_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -119,9 +336,11 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -129,10 +348,10 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -140,9 +359,9 @@ func socket(domain int, typ int, proto int) (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawsyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -150,9 +369,9 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawsyscall(SYS___GETPEERNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -160,10 +379,52 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawsyscall(SYS___GETSOCKNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Removexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_RemovexattrAddr() *(func(path string, attr string) (err error)) + +var Removexattr = enter_Removexattr + +func enter_Removexattr(path string, attr string) (err error) { + funcref := get_RemovexattrAddr() + if funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, "") == 0 { + *funcref = impl_Removexattr + } else { + *funcref = error_Removexattr } + return (*funcref)(path, attr) +} + +func error_Removexattr(path string, attr string) (err error) { + err = ENOSYS return } @@ -176,10 +437,12 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(SYS___RECVFROM_A, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + runtime.ExitSyscall() n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -193,9 +456,11 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall6(SYS___SENDTO_A, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -203,10 +468,12 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(SYS___RECVMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + runtime.ExitSyscall() n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -214,10 +481,12 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(SYS___SENDMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + runtime.ExitSyscall() n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -225,10 +494,12 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + runtime.ExitSyscall() ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -236,9 +507,11 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -246,9 +519,11 @@ func munmap(addr uintptr, length uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req int, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -256,9 +531,62 @@ func ioctl(fd int, req int, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag)) + runtime.ExitSyscall() + ret = uintptr(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + runtime.ExitSyscall() + result = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag)) + runtime.ExitSyscall() + id = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -271,9 +599,11 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___ACCESS_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -286,9 +616,11 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___CHDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -301,9 +633,11 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___CHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -316,9 +650,11 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___CHMOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -331,10 +667,12 @@ func Creat(path string, mode uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall(SYS___CREAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -342,10 +680,12 @@ func Creat(path string, mode uint32) (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := syscall_syscall(SYS_DUP, uintptr(oldfd), 0, 0) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd)) + runtime.ExitSyscall() fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -353,617 +693,2216 @@ func Dup(oldfd int) (fd int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := syscall_syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Errno2() (er2 int) { - uer2, _, _ := syscall_syscall(SYS___ERRNO2, 0, 0, 0) - er2 = int(uer2) +func impl_Dup3(oldfd int, newfd int, flags int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error)) -func Err2ad() (eadd *int) { - ueadd, _, _ := syscall_syscall(SYS___ERR2AD, 0, 0, 0) - eadd = (*int)(unsafe.Pointer(ueadd)) - return -} +var Dup3 = enter_Dup3 -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func enter_Dup3(oldfd int, newfd int, flags int) (err error) { + funcref := get_Dup3Addr() + if funcptrtest(GetZosLibVec()+SYS_DUP3<<4, "") == 0 { + *funcref = impl_Dup3 + } else { + *funcref = error_Dup3 + } + return (*funcref)(oldfd, newfd, flags) +} -func Exit(code int) { - syscall_syscall(SYS_EXIT, uintptr(code), 0, 0) +func error_Dup3(oldfd int, newfd int, flags int) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) +func impl_Dirfd(dirp uintptr) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_DirfdAddr() *(func(dirp uintptr) (fd int, err error)) -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) +var Dirfd = enter_Dirfd + +func enter_Dirfd(dirp uintptr) (fd int, err error) { + funcref := get_DirfdAddr() + if funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, "") == 0 { + *funcref = impl_Dirfd + } else { + *funcref = error_Dirfd } + return (*funcref)(dirp) +} + +func error_Dirfd(dirp uintptr) (fd int, err error) { + fd = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) +func impl_EpollCreate(size int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_EpollCreateAddr() *(func(size int) (fd int, err error)) -func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { - r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - retval = int(r0) - if e1 != 0 { - err = errnoErr(e1) +var EpollCreate = enter_EpollCreate + +func enter_EpollCreate(size int) (fd int, err error) { + funcref := get_EpollCreateAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, "") == 0 { + *funcref = impl_EpollCreate + } else { + *funcref = error_EpollCreate } + return (*funcref)(size) +} + +func error_EpollCreate(size int) (fd int, err error) { + fd = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fstat(fd int, stat *Stat_LE_t) (err error) { - _, _, e1 := syscall_syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) +func impl_EpollCreate1(flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_EpollCreate1Addr() *(func(flags int) (fd int, err error)) -func Fstatvfs(fd int, stat *Statvfs_t) (err error) { - _, _, e1 := syscall_syscall(SYS_FSTATVFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) +var EpollCreate1 = enter_EpollCreate1 + +func enter_EpollCreate1(flags int) (fd int, err error) { + funcref := get_EpollCreate1Addr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, "") == 0 { + *funcref = impl_EpollCreate1 + } else { + *funcref = error_EpollCreate1 } + return (*funcref)(flags) +} + +func error_EpollCreate1(flags int) (fd int, err error) { + fd = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) +func impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error)) -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) +var EpollCtl = enter_EpollCtl + +func enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + funcref := get_EpollCtlAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, "") == 0 { + *funcref = impl_EpollCtl + } else { + *funcref = error_EpollCtl } - return + return (*funcref)(epfd, op, fd, event) } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpagesize() (pgsize int) { - r0, _, _ := syscall_syscall(SYS_GETPAGESIZE, 0, 0, 0) - pgsize = int(r0) +func error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mprotect(b []byte, prot int) (err error) { +func impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask))) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error)) -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) +var EpollPwait = enter_EpollPwait + +func enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { + funcref := get_EpollPwaitAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, "") == 0 { + *funcref = impl_EpollPwait } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) + *funcref = error_EpollPwait } + return (*funcref)(epfd, events, msec, sigmask) +} + +func error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { + n = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Poll(fds []PollFd, timeout int) (n int, err error) { +func impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer - if len(fds) > 0 { - _p0 = unsafe.Pointer(&fds[0]) + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(SYS_POLL, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec)) + runtime.ExitSyscall() n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error)) -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := syscall_syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) +var EpollWait = enter_EpollWait + +func enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + funcref := get_EpollWaitAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, "") == 0 { + *funcref = impl_EpollWait + } else { + *funcref = error_EpollWait } + return (*funcref)(epfd, events, msec) +} + +func error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + n = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func W_Getmntent(buff *byte, size int) (lastsys int, err error) { - r0, _, e1 := syscall_syscall(SYS_W_GETMNTENT, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) - lastsys = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func Errno2() (er2 int) { + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4) + runtime.ExitSyscall() + er2 = int(r0) return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { - r0, _, e1 := syscall_syscall(SYS___W_GETMNTENT_A, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) - lastsys = int(r0) - if e1 != 0 { - err = errnoErr(e1) +func impl_Eventfd(initval uint, flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } +//go:nosplit +func get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error)) + +var Eventfd = enter_Eventfd + +func enter_Eventfd(initval uint, flags int) (fd int, err error) { + funcref := get_EventfdAddr() + if funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, "") == 0 { + *funcref = impl_Eventfd + } else { + *funcref = error_Eventfd + } + return (*funcref)(initval, flags) +} + +func error_Eventfd(initval uint, flags int) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { +func Exit(code int) { + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code)) + runtime.ExitSyscall() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - var _p1 *byte - _p1, err = BytePtrFromString(filesystem) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - var _p3 *byte - _p3, err = BytePtrFromString(parm) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(SYS___MOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) -func unmount(filesystem string, mtm int) (err error) { +var Faccessat = enter_Faccessat + +func enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + funcref := get_FaccessatAddr() + if funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, "") == 0 { + *funcref = impl_Faccessat + } else { + *funcref = error_Faccessat + } + return (*funcref)(dirfd, path, mode, flags) +} + +func error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(filesystem) + _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := syscall_syscall(SYS___UMOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mtm), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) + +var Fchmodat = enter_Fchmodat + +func enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + funcref := get_FchmodatAddr() + if funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, "") == 0 { + *funcref = impl_Fchmodat + } else { + *funcref = error_Fchmodat + } + return (*funcref)(dirfd, path, mode, flags) +} + +func error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Chroot(path string) (err error) { +func impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := syscall_syscall(SYS___CHROOT_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error)) + +var Fchownat = enter_Fchownat + +func enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { + funcref := get_FchownatAddr() + if funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, "") == 0 { + *funcref = impl_Fchownat + } else { + *funcref = error_Fchownat } + return (*funcref)(fd, path, uid, gid, flags) +} + +func error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Uname(buf *Utsname) (err error) { - _, _, e1 := syscall_rawsyscall(SYS___UNAME_A, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) +func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) + runtime.ExitSyscall() + retval = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Gethostname(buf []byte) (err error) { +func impl_Fdatasync(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FdatasyncAddr() *(func(fd int) (err error)) + +var Fdatasync = enter_Fdatasync + +func enter_Fdatasync(fd int) (err error) { + funcref := get_FdatasyncAddr() + if funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, "") == 0 { + *funcref = impl_Fdatasync + } else { + *funcref = error_Fdatasync + } + return (*funcref)(fd) +} + +func error_Fdatasync(fd int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_LE_t) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error)) + +var fstatat = enter_fstatat + +func enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { + funcref := get_fstatatAddr() + if funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, "") == 0 { + *funcref = impl_fstatat + } else { + *funcref = error_fstatat + } + return (*funcref)(dirfd, path, stat, flags) +} + +func error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error)) + +var Lgetxattr = enter_Lgetxattr + +func enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + funcref := get_LgetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, "") == 0 { + *funcref = impl_Lgetxattr + } else { + *funcref = error_Lgetxattr + } + return (*funcref)(link, attr, dest) +} + +func error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) + +var Lsetxattr = enter_Lsetxattr + +func enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { + funcref := get_LsetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, "") == 0 { + *funcref = impl_Lsetxattr + } else { + *funcref = error_Lsetxattr + } + return (*funcref)(path, attr, data, flags) +} + +func error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fstatfs(fd int, buf *Statfs_t) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error)) + +var Fstatfs = enter_Fstatfs + +func enter_Fstatfs(fd int, buf *Statfs_t) (err error) { + funcref := get_FstatfsAddr() + if funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, "") == 0 { + *funcref = impl_Fstatfs + } else { + *funcref = error_Fstatfs + } + return (*funcref)(fd, buf) +} + +func error_Fstatfs(fd int, buf *Statfs_t) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs(fd int, stat *Statvfs_t) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Futimes(fd int, tv []Timeval) (err error) { var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) + if len(tv) > 0 { + _p0 = unsafe.Pointer(&tv[0]) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(SYS___GETHOSTNAME_A, uintptr(_p0), uintptr(len(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_FutimesAddr() *(func(fd int, tv []Timeval) (err error)) -func Getegid() (egid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) +var Futimes = enter_Futimes + +func enter_Futimes(fd int, tv []Timeval) (err error) { + funcref := get_FutimesAddr() + if funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, "") == 0 { + *funcref = impl_Futimes + } else { + *funcref = error_Futimes + } + return (*funcref)(fd, tv) +} + +func error_Futimes(fd int, tv []Timeval) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Geteuid() (uid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) +func impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(tv) > 0 { + _p1 = unsafe.Pointer(&tv[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error)) + +var Futimesat = enter_Futimesat + +func enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) { + funcref := get_FutimesatAddr() + if funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, "") == 0 { + *funcref = impl_Futimesat + } else { + *funcref = error_Futimesat + } + return (*funcref)(dirfd, path, tv) +} + +func error_Futimesat(dirfd int, path string, tv []Timeval) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getgid() (gid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) +func Ftruncate(fd int, length int64) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getpid() (pid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) +func impl_Getrandom(buf []byte, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error)) + +var Getrandom = enter_Getrandom + +func enter_Getrandom(buf []byte, flags int) (n int, err error) { + funcref := get_GetrandomAddr() + if funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, "") == 0 { + *funcref = impl_Getrandom + } else { + *funcref = error_Getrandom + } + return (*funcref)(buf, flags) +} + +func error_Getrandom(buf []byte, flags int) (n int, err error) { + n = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) +func impl_InotifyInit() (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyInitAddr() *(func() (fd int, err error)) + +var InotifyInit = enter_InotifyInit + +func enter_InotifyInit() (fd int, err error) { + funcref := get_InotifyInitAddr() + if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, "") == 0 { + *funcref = impl_InotifyInit + } else { + *funcref = error_InotifyInit } + return (*funcref)() +} + +func error_InotifyInit() (fd int, err error) { + fd = -1 + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getppid() (pid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETPPID, 0, 0, 0) - pid = int(r0) +func impl_InotifyInit1(flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyInit1Addr() *(func(flags int) (fd int, err error)) + +var InotifyInit1 = enter_InotifyInit1 + +func enter_InotifyInit1(flags int) (fd int, err error) { + funcref := get_InotifyInit1Addr() + if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, "") == 0 { + *funcref = impl_InotifyInit1 + } else { + *funcref = error_InotifyInit1 + } + return (*funcref)(flags) +} + +func error_InotifyInit1(flags int) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + runtime.ExitSyscall() + watchdesc = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error)) + +var InotifyAddWatch = enter_InotifyAddWatch + +func enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + funcref := get_InotifyAddWatchAddr() + if funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, "") == 0 { + *funcref = impl_InotifyAddWatch + } else { + *funcref = error_InotifyAddWatch + } + return (*funcref)(fd, pathname, mask) +} + +func error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + watchdesc = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc)) + runtime.ExitSyscall() + success = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error)) + +var InotifyRmWatch = enter_InotifyRmWatch + +func enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + funcref := get_InotifyRmWatchAddr() + if funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, "") == 0 { + *funcref = impl_InotifyRmWatch + } else { + *funcref = error_InotifyRmWatch + } + return (*funcref)(fd, watchdesc) +} + +func error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + success = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Listxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error)) + +var Listxattr = enter_Listxattr + +func enter_Listxattr(path string, dest []byte) (sz int, err error) { + funcref := get_ListxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, "") == 0 { + *funcref = impl_Listxattr + } else { + *funcref = error_Listxattr + } + return (*funcref)(path, dest) +} + +func error_Listxattr(path string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Llistxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error)) + +var Llistxattr = enter_Llistxattr + +func enter_Llistxattr(path string, dest []byte) (sz int, err error) { + funcref := get_LlistxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, "") == 0 { + *funcref = impl_Llistxattr + } else { + *funcref = error_Llistxattr + } + return (*funcref)(path, dest) +} + +func error_Llistxattr(path string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Lremovexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LremovexattrAddr() *(func(path string, attr string) (err error)) + +var Lremovexattr = enter_Lremovexattr + +func enter_Lremovexattr(path string, attr string) (err error) { + funcref := get_LremovexattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, "") == 0 { + *funcref = impl_Lremovexattr + } else { + *funcref = error_Lremovexattr + } + return (*funcref)(path, attr) +} + +func error_Lremovexattr(path string, attr string) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Lutimes(path string, tv []Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(tv) > 0 { + _p1 = unsafe.Pointer(&tv[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LutimesAddr() *(func(path string, tv []Timeval) (err error)) + +var Lutimes = enter_Lutimes + +func enter_Lutimes(path string, tv []Timeval) (err error) { + funcref := get_LutimesAddr() + if funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, "") == 0 { + *funcref = impl_Lutimes + } else { + *funcref = error_Lutimes + } + return (*funcref)(path, tv) +} + +func error_Lutimes(path string, tv []Timeval) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var _p0 unsafe.Pointer + if len(fds) > 0 { + _p0 = unsafe.Pointer(&fds[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error)) + +var Statfs = enter_Statfs + +func enter_Statfs(path string, buf *Statfs_t) (err error) { + funcref := get_StatfsAddr() + if funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, "") == 0 { + *funcref = impl_Statfs + } else { + *funcref = error_Statfs + } + return (*funcref)(path, buf) +} + +func error_Statfs(path string, buf *Statfs_t) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Syncfs(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_SyncfsAddr() *(func(fd int) (err error)) + +var Syncfs = enter_Syncfs + +func enter_Syncfs(fd int) (err error) { + funcref := get_SyncfsAddr() + if funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, "") == 0 { + *funcref = impl_Syncfs + } else { + *funcref = error_Syncfs + } + return (*funcref)(fd) +} + +func error_Syncfs(fd int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms))) + runtime.ExitSyscall() + ticks = uintptr(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent(buff *byte, size int) (lastsys int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) + runtime.ExitSyscall() + lastsys = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) + runtime.ExitSyscall() + lastsys = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(filesystem) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + var _p3 *byte + _p3, err = BytePtrFromString(parm) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unmount_LE(filesystem string, mtm int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(filesystem) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) + runtime.ExitSyscall() + ret = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Unshare(flags int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_UnshareAddr() *(func(flags int) (err error)) + +var Unshare = enter_Unshare + +func enter_Unshare(flags int) (err error) { + funcref := get_UnshareAddr() + if funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, "") == 0 { + *funcref = impl_Unshare + } else { + *funcref = error_Unshare + } + return (*funcref)(flags) +} + +func error_Unshare(flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gethostname(buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid)) + pgid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (pid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who)) + runtime.ExitSyscall() + prio = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrusage(who int, rusage *rusage_zos) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4) + runtime.ExitSyscall() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4) + runtime.ExitSyscall() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid)) + sid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldPath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newPath) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error)) + +var Linkat = enter_Linkat + +func enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { + funcref := get_LinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, "") == 0 { + *funcref = impl_Linkat + } else { + *funcref = error_Linkat + } + return (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags) +} + +func error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_LE_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error)) + +var Mkdirat = enter_Mkdirat + +func enter_Mkdirat(dirfd int, path string, mode uint32) (err error) { + funcref := get_MkdiratAddr() + if funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, "") == 0 { + *funcref = impl_Mkdirat + } else { + *funcref = error_Mkdirat + } + return (*funcref)(dirfd, path, mode) +} + +func error_Mkdirat(dirfd int, path string, mode uint32) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error)) + +var Mknodat = enter_Mknodat + +func enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + funcref := get_MknodatAddr() + if funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, "") == 0 { + *funcref = impl_Mknodat + } else { + *funcref = error_Mknodat + } + return (*funcref)(dirfd, path, mode, dev) +} + +func error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_PivotRoot(newroot string, oldroot string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(oldroot) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_PivotRootAddr() *(func(newroot string, oldroot string) (err error)) + +var PivotRoot = enter_PivotRoot + +func enter_PivotRoot(newroot string, oldroot string) (err error) { + funcref := get_PivotRootAddr() + if funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, "") == 0 { + *funcref = impl_PivotRoot + } else { + *funcref = error_PivotRoot + } + return (*funcref)(newroot, oldroot) +} + +func error_PivotRoot(newroot string, oldroot string) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) +func impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)) -func getrusage(who int, rusage *rusage_zos) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) +var Prctl = enter_Prctl + +func enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + funcref := get_PrctlAddr() + if funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, "") == 0 { + *funcref = impl_Prctl + } else { + *funcref = error_Prctl } - return + return (*funcref)(option, arg2, arg3, arg4, arg5) } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } +func error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getuid() (uid int) { - r0, _, _ := syscall_rawsyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) +func impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error)) -func Kill(pid int, sig Signal) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) +var Prlimit = enter_Prlimit + +func enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + funcref := get_PrlimitAddr() + if funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, "") == 0 { + *funcref = impl_Prlimit + } else { + *funcref = error_Prlimit } + return (*funcref)(pid, resource, newlimit, old) +} + +func error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Lchown(path string, uid int, gid int) (err error) { +func Rename(from string, to string) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) if err != nil { return } - _, _, e1 := syscall_syscall(SYS___LCHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Link(path string, link string) (err error) { +func impl_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(oldpath) if err != nil { return } var _p1 *byte - _p1, err = BytePtrFromString(link) + _p1, err = BytePtrFromString(newpath) if err != nil { return } - _, _, e1 := syscall_syscall(SYS___LINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)) -func Listen(s int, n int) (err error) { - _, _, e1 := syscall_syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) +var Renameat = enter_Renameat + +func enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + funcref := get_RenameatAddr() + if funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, "") == 0 { + *funcref = impl_Renameat + } else { + *funcref = error_Renameat } + return (*funcref)(olddirfd, oldpath, newdirfd, newpath) +} + +func error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func lstat(path string, stat *Stat_LE_t) (err error) { +func impl_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { var _p0 *byte - _p0, err = BytePtrFromString(path) + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) if err != nil { return } - _, _, e1 := syscall_syscall(SYS___LSTAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)) -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___MKDIR_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) +var Renameat2 = enter_Renameat2 + +func enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + funcref := get_Renameat2Addr() + if funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, "") == 0 { + *funcref = impl_Renameat2 + } else { + *funcref = error_Renameat2 } + return (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags) +} + +func error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mkfifo(path string, mode uint32) (err error) { +func Rmdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := syscall_syscall(SYS___MKFIFO_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___MKNOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) +func Seek(fd int, offset int64, whence int) (off int64, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence)) + runtime.ExitSyscall() + off = int64(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) +func Setegid(egid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } - r0, _, e1 := syscall_syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { +func impl_Sethostname(p []byte) (err error) { var _p0 unsafe.Pointer if len(p) > 0 { _p0 = unsafe.Pointer(&p[0]) } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_SethostnameAddr() *(func(p []byte) (err error)) -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) +var Sethostname = enter_Sethostname + +func enter_Sethostname(p []byte) (err error) { + funcref := get_SethostnameAddr() + if funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, "") == 0 { + *funcref = impl_Sethostname } else { - _p1 = unsafe.Pointer(&_zero) + *funcref = error_Sethostname } - r0, _, e1 := syscall_syscall(SYS___READLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return + return (*funcref)(p) } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___RENAME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } +func error_Sethostname(p []byte) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(SYS___RMDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) +func impl_Setns(fd int, nstype int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +//go:nosplit +func get_SetnsAddr() *(func(fd int, nstype int) (err error)) -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := syscall_syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) +var Setns = enter_Setns + +func enter_Setns(fd int, nstype int) (err error) { + funcref := get_SetnsAddr() + if funcptrtest(GetZosLibVec()+SYS_SETNS<<4, "") == 0 { + *funcref = impl_Setns + } else { + *funcref = error_Setns } + return (*funcref)(fd, nstype) +} + +func error_Setns(fd int, nstype int) (err error) { + err = ENOSYS return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -971,9 +2910,9 @@ func Setpriority(which int, who int, prio int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -981,9 +2920,9 @@ func Setpgid(pid int, pgid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(resource int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -991,9 +2930,9 @@ func Setrlimit(resource int, lim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1001,9 +2940,9 @@ func Setregid(rgid int, egid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1011,10 +2950,10 @@ func Setreuid(ruid int, euid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawsyscall(SYS_SETSID, 0, 0, 0) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4) pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1022,9 +2961,11 @@ func Setsid() (pid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := syscall_syscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1032,9 +2973,11 @@ func Setuid(uid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(uid int) (err error) { - _, _, e1 := syscall_syscall(SYS_SETGID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1042,9 +2985,11 @@ func Setgid(uid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1057,9 +3002,11 @@ func stat(path string, statLE *Stat_LE_t) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___STAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1077,17 +3024,63 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___SYMLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldPath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newPath) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } +//go:nosplit +func get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error)) + +var Symlinkat = enter_Symlinkat + +func enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { + funcref := get_SymlinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, "") == 0 { + *funcref = impl_Symlinkat + } else { + *funcref = error_Symlinkat + } + return (*funcref)(oldPath, dirfd, newPath) +} + +func error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { + err = ENOSYS + return +} + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() { - syscall_syscall(SYS_SYNC, 0, 0, 0) + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4) + runtime.ExitSyscall() return } @@ -1099,9 +3092,11 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___TRUNCATE_A, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1109,9 +3104,11 @@ func Truncate(path string, length int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Tcgetattr(fildes int, termptr *Termios) (err error) { - _, _, e1 := syscall_syscall(SYS_TCGETATTR, uintptr(fildes), uintptr(unsafe.Pointer(termptr)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1119,9 +3116,11 @@ func Tcgetattr(fildes int, termptr *Termios) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { - _, _, e1 := syscall_syscall(SYS_TCSETATTR, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1129,7 +3128,9 @@ func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(mask int) (oldmask int) { - r0, _, _ := syscall_syscall(SYS_UMASK, uintptr(mask), 0, 0) + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask)) + runtime.ExitSyscall() oldmask = int(r0) return } @@ -1142,10 +3143,49 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___UNLINK_A, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error)) + +var Unlinkat = enter_Unlinkat + +func enter_Unlinkat(dirfd int, path string, flags int) (err error) { + funcref := get_UnlinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, "") == 0 { + *funcref = impl_Unlinkat + } else { + *funcref = error_Unlinkat } + return (*funcref)(dirfd, path, flags) +} + +func error_Unlinkat(dirfd int, path string, flags int) (err error) { + err = ENOSYS return } @@ -1157,9 +3197,11 @@ func Utime(path string, utim *Utimbuf) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___UTIME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1172,11 +3214,91 @@ func open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall(SYS___OPEN_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error)) + +var openat = enter_openat + +func enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + funcref := get_openatAddr() + if funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, "") == 0 { + *funcref = impl_openat + } else { + *funcref = error_openat + } + return (*funcref)(dirfd, path, flags, mode) +} + +func error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size)) + runtime.ExitSyscall() fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)) + +var openat2 = enter_openat2 + +func enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + funcref := get_openat2Addr() + if funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, "") == 0 { + *funcref = impl_openat2 + } else { + *funcref = error_openat2 } + return (*funcref)(dirfd, path, open_how, size) +} + +func error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + fd = -1 + err = ENOSYS return } @@ -1188,9 +3310,23 @@ func remove(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func waitid(idType int, id int, info *Siginfo, options int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1198,10 +3334,12 @@ func remove(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { - r0, _, e1 := syscall_syscall(SYS_WAITPID, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) + runtime.ExitSyscall() wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1209,9 +3347,9 @@ func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func gettimeofday(tv *timeval_zos) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1219,9 +3357,9 @@ func gettimeofday(tv *timeval_zos) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe(p *[2]_C_int) (err error) { - _, _, e1 := syscall_rawsyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } @@ -1234,20 +3372,87 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(SYS___UTIMES_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { - r0, _, e1 := syscall_syscall6(SYS_SELECT, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) +func impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error)) + +var utimensat = enter_utimensat + +func enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { + funcref := get_utimensatAddr() + if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { + *funcref = impl_utimensat + } else { + *funcref = error_utimensat + } + return (*funcref)(dirfd, path, ts, flags) +} + +func error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Posix_openpt(oflag int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Grantpt(fildes int) (rc int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes)) + runtime.ExitSyscall() + rc = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlockpt(fildes int) (rc int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes)) + runtime.ExitSyscall() + rc = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) } return } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index 0cc3ce496..53aef5dc5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -452,4 +452,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index 856d92d69..71d524763 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -374,4 +374,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index 8d467094c..c74770613 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -416,4 +416,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index edc173244..f96e214f6 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -319,4 +319,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go index 445eba206..28425346c 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go @@ -313,4 +313,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index adba01bca..d0953018d 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -436,4 +436,9 @@ const ( SYS_FUTEX_WAKE = 4454 SYS_FUTEX_WAIT = 4455 SYS_FUTEX_REQUEUE = 4456 + SYS_STATMOUNT = 4457 + SYS_LISTMOUNT = 4458 + SYS_LSM_GET_SELF_ATTR = 4459 + SYS_LSM_SET_SELF_ATTR = 4460 + SYS_LSM_LIST_MODULES = 4461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index 014c4e9c7..295c7f4b8 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -366,4 +366,9 @@ const ( SYS_FUTEX_WAKE = 5454 SYS_FUTEX_WAIT = 5455 SYS_FUTEX_REQUEUE = 5456 + SYS_STATMOUNT = 5457 + SYS_LISTMOUNT = 5458 + SYS_LSM_GET_SELF_ATTR = 5459 + SYS_LSM_SET_SELF_ATTR = 5460 + SYS_LSM_LIST_MODULES = 5461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index ccc97d74d..d1a9eaca7 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -366,4 +366,9 @@ const ( SYS_FUTEX_WAKE = 5454 SYS_FUTEX_WAIT = 5455 SYS_FUTEX_REQUEUE = 5456 + SYS_STATMOUNT = 5457 + SYS_LISTMOUNT = 5458 + SYS_LSM_GET_SELF_ATTR = 5459 + SYS_LSM_SET_SELF_ATTR = 5460 + SYS_LSM_LIST_MODULES = 5461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index ec2b64a95..bec157c39 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -436,4 +436,9 @@ const ( SYS_FUTEX_WAKE = 4454 SYS_FUTEX_WAIT = 4455 SYS_FUTEX_REQUEUE = 4456 + SYS_STATMOUNT = 4457 + SYS_LISTMOUNT = 4458 + SYS_LSM_GET_SELF_ATTR = 4459 + SYS_LSM_SET_SELF_ATTR = 4460 + SYS_LSM_LIST_MODULES = 4461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go index 21a839e33..7ee7bdc43 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go @@ -443,4 +443,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index c11121ec3..fad1f25b4 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -415,4 +415,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index 909b631fc..7d3e16357 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -415,4 +415,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index e49bed16e..0ed53ad9f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -320,4 +320,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index 66017d2d3..2fba04ad5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -381,4 +381,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index 47bab18dc..621d00d74 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -394,4 +394,9 @@ const ( SYS_FUTEX_WAKE = 454 SYS_FUTEX_WAIT = 455 SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go index b2e308581..5e8c263ca 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go @@ -1,2669 +1,2852 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. +// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s +// Code generated by the command above; see README.md. DO NOT EDIT. //go:build zos && s390x package unix -// TODO: auto-generate. - const ( - SYS_ACOSD128 = 0xB80 - SYS_ACOSD32 = 0xB7E - SYS_ACOSD64 = 0xB7F - SYS_ACOSHD128 = 0xB83 - SYS_ACOSHD32 = 0xB81 - SYS_ACOSHD64 = 0xB82 - SYS_AIO_FSYNC = 0xC69 - SYS_ASCTIME = 0x0AE - SYS_ASCTIME64 = 0xCD7 - SYS_ASCTIME64_R = 0xCD8 - SYS_ASIND128 = 0xB86 - SYS_ASIND32 = 0xB84 - SYS_ASIND64 = 0xB85 - SYS_ASINHD128 = 0xB89 - SYS_ASINHD32 = 0xB87 - SYS_ASINHD64 = 0xB88 - SYS_ATAN2D128 = 0xB8F - SYS_ATAN2D32 = 0xB8D - SYS_ATAN2D64 = 0xB8E - SYS_ATAND128 = 0xB8C - SYS_ATAND32 = 0xB8A - SYS_ATAND64 = 0xB8B - SYS_ATANHD128 = 0xB92 - SYS_ATANHD32 = 0xB90 - SYS_ATANHD64 = 0xB91 - SYS_BIND2ADDRSEL = 0xD59 - SYS_C16RTOMB = 0xD40 - SYS_C32RTOMB = 0xD41 - SYS_CBRTD128 = 0xB95 - SYS_CBRTD32 = 0xB93 - SYS_CBRTD64 = 0xB94 - SYS_CEILD128 = 0xB98 - SYS_CEILD32 = 0xB96 - SYS_CEILD64 = 0xB97 - SYS_CLEARENV = 0x0C9 - SYS_CLEARERR_UNLOCKED = 0xCA1 - SYS_CLOCK = 0x0AA - SYS_CLOGL = 0xA00 - SYS_CLRMEMF = 0x0BD - SYS_CONJ = 0xA03 - SYS_CONJF = 0xA06 - SYS_CONJL = 0xA09 - SYS_COPYSIGND128 = 0xB9E - SYS_COPYSIGND32 = 0xB9C - SYS_COPYSIGND64 = 0xB9D - SYS_COSD128 = 0xBA1 - SYS_COSD32 = 0xB9F - SYS_COSD64 = 0xBA0 - SYS_COSHD128 = 0xBA4 - SYS_COSHD32 = 0xBA2 - SYS_COSHD64 = 0xBA3 - SYS_CPOW = 0xA0C - SYS_CPOWF = 0xA0F - SYS_CPOWL = 0xA12 - SYS_CPROJ = 0xA15 - SYS_CPROJF = 0xA18 - SYS_CPROJL = 0xA1B - SYS_CREAL = 0xA1E - SYS_CREALF = 0xA21 - SYS_CREALL = 0xA24 - SYS_CSIN = 0xA27 - SYS_CSINF = 0xA2A - SYS_CSINH = 0xA30 - SYS_CSINHF = 0xA33 - SYS_CSINHL = 0xA36 - SYS_CSINL = 0xA2D - SYS_CSNAP = 0x0C5 - SYS_CSQRT = 0xA39 - SYS_CSQRTF = 0xA3C - SYS_CSQRTL = 0xA3F - SYS_CTAN = 0xA42 - SYS_CTANF = 0xA45 - SYS_CTANH = 0xA4B - SYS_CTANHF = 0xA4E - SYS_CTANHL = 0xA51 - SYS_CTANL = 0xA48 - SYS_CTIME = 0x0AB - SYS_CTIME64 = 0xCD9 - SYS_CTIME64_R = 0xCDA - SYS_CTRACE = 0x0C6 - SYS_DIFFTIME = 0x0A7 - SYS_DIFFTIME64 = 0xCDB - SYS_DLADDR = 0xC82 - SYS_DYNALLOC = 0x0C3 - SYS_DYNFREE = 0x0C2 - SYS_ERFCD128 = 0xBAA - SYS_ERFCD32 = 0xBA8 - SYS_ERFCD64 = 0xBA9 - SYS_ERFD128 = 0xBA7 - SYS_ERFD32 = 0xBA5 - SYS_ERFD64 = 0xBA6 - SYS_EXP2D128 = 0xBB0 - SYS_EXP2D32 = 0xBAE - SYS_EXP2D64 = 0xBAF - SYS_EXPD128 = 0xBAD - SYS_EXPD32 = 0xBAB - SYS_EXPD64 = 0xBAC - SYS_EXPM1D128 = 0xBB3 - SYS_EXPM1D32 = 0xBB1 - SYS_EXPM1D64 = 0xBB2 - SYS_FABSD128 = 0xBB6 - SYS_FABSD32 = 0xBB4 - SYS_FABSD64 = 0xBB5 - SYS_FDELREC_UNLOCKED = 0xCA2 - SYS_FDIMD128 = 0xBB9 - SYS_FDIMD32 = 0xBB7 - SYS_FDIMD64 = 0xBB8 - SYS_FDOPEN_UNLOCKED = 0xCFC - SYS_FECLEAREXCEPT = 0xAEA - SYS_FEGETENV = 0xAEB - SYS_FEGETEXCEPTFLAG = 0xAEC - SYS_FEGETROUND = 0xAED - SYS_FEHOLDEXCEPT = 0xAEE - SYS_FEOF_UNLOCKED = 0xCA3 - SYS_FERAISEEXCEPT = 0xAEF - SYS_FERROR_UNLOCKED = 0xCA4 - SYS_FESETENV = 0xAF0 - SYS_FESETEXCEPTFLAG = 0xAF1 - SYS_FESETROUND = 0xAF2 - SYS_FETCHEP = 0x0BF - SYS_FETESTEXCEPT = 0xAF3 - SYS_FEUPDATEENV = 0xAF4 - SYS_FE_DEC_GETROUND = 0xBBA - SYS_FE_DEC_SETROUND = 0xBBB - SYS_FFLUSH_UNLOCKED = 0xCA5 - SYS_FGETC_UNLOCKED = 0xC80 - SYS_FGETPOS64 = 0xCEE - SYS_FGETPOS64_UNLOCKED = 0xCF4 - SYS_FGETPOS_UNLOCKED = 0xCA6 - SYS_FGETS_UNLOCKED = 0xC7C - SYS_FGETWC_UNLOCKED = 0xCA7 - SYS_FGETWS_UNLOCKED = 0xCA8 - SYS_FILENO_UNLOCKED = 0xCA9 - SYS_FLDATA = 0x0C1 - SYS_FLDATA_UNLOCKED = 0xCAA - SYS_FLOCATE_UNLOCKED = 0xCAB - SYS_FLOORD128 = 0xBBE - SYS_FLOORD32 = 0xBBC - SYS_FLOORD64 = 0xBBD - SYS_FMA = 0xA63 - SYS_FMAD128 = 0xBC1 - SYS_FMAD32 = 0xBBF - SYS_FMAD64 = 0xBC0 - SYS_FMAF = 0xA66 - SYS_FMAL = 0xA69 - SYS_FMAX = 0xA6C - SYS_FMAXD128 = 0xBC4 - SYS_FMAXD32 = 0xBC2 - SYS_FMAXD64 = 0xBC3 - SYS_FMAXF = 0xA6F - SYS_FMAXL = 0xA72 - SYS_FMIN = 0xA75 - SYS_FMIND128 = 0xBC7 - SYS_FMIND32 = 0xBC5 - SYS_FMIND64 = 0xBC6 - SYS_FMINF = 0xA78 - SYS_FMINL = 0xA7B - SYS_FMODD128 = 0xBCA - SYS_FMODD32 = 0xBC8 - SYS_FMODD64 = 0xBC9 - SYS_FOPEN64 = 0xD49 - SYS_FOPEN64_UNLOCKED = 0xD4A - SYS_FOPEN_UNLOCKED = 0xCFA - SYS_FPRINTF_UNLOCKED = 0xCAC - SYS_FPUTC_UNLOCKED = 0xC81 - SYS_FPUTS_UNLOCKED = 0xC7E - SYS_FPUTWC_UNLOCKED = 0xCAD - SYS_FPUTWS_UNLOCKED = 0xCAE - SYS_FREAD_NOUPDATE = 0xCEC - SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED - SYS_FREAD_UNLOCKED = 0xC7B - SYS_FREEIFADDRS = 0xCE6 - SYS_FREOPEN64 = 0xD4B - SYS_FREOPEN64_UNLOCKED = 0xD4C - SYS_FREOPEN_UNLOCKED = 0xCFB - SYS_FREXPD128 = 0xBCE - SYS_FREXPD32 = 0xBCC - SYS_FREXPD64 = 0xBCD - SYS_FSCANF_UNLOCKED = 0xCAF - SYS_FSEEK64 = 0xCEF - SYS_FSEEK64_UNLOCKED = 0xCF5 - SYS_FSEEKO64 = 0xCF0 - SYS_FSEEKO64_UNLOCKED = 0xCF6 - SYS_FSEEKO_UNLOCKED = 0xCB1 - SYS_FSEEK_UNLOCKED = 0xCB0 - SYS_FSETPOS64 = 0xCF1 - SYS_FSETPOS64_UNLOCKED = 0xCF7 - SYS_FSETPOS_UNLOCKED = 0xCB3 - SYS_FTELL64 = 0xCF2 - SYS_FTELL64_UNLOCKED = 0xCF8 - SYS_FTELLO64 = 0xCF3 - SYS_FTELLO64_UNLOCKED = 0xCF9 - SYS_FTELLO_UNLOCKED = 0xCB5 - SYS_FTELL_UNLOCKED = 0xCB4 - SYS_FUPDATE = 0x0B5 - SYS_FUPDATE_UNLOCKED = 0xCB7 - SYS_FWIDE_UNLOCKED = 0xCB8 - SYS_FWPRINTF_UNLOCKED = 0xCB9 - SYS_FWRITE_UNLOCKED = 0xC7A - SYS_FWSCANF_UNLOCKED = 0xCBA - SYS_GETDATE64 = 0xD4F - SYS_GETIFADDRS = 0xCE7 - SYS_GETIPV4SOURCEFILTER = 0xC77 - SYS_GETSOURCEFILTER = 0xC79 - SYS_GETSYNTX = 0x0FD - SYS_GETS_UNLOCKED = 0xC7D - SYS_GETTIMEOFDAY64 = 0xD50 - SYS_GETWCHAR_UNLOCKED = 0xCBC - SYS_GETWC_UNLOCKED = 0xCBB - SYS_GMTIME = 0x0B0 - SYS_GMTIME64 = 0xCDC - SYS_GMTIME64_R = 0xCDD - SYS_HYPOTD128 = 0xBD1 - SYS_HYPOTD32 = 0xBCF - SYS_HYPOTD64 = 0xBD0 - SYS_ILOGBD128 = 0xBD4 - SYS_ILOGBD32 = 0xBD2 - SYS_ILOGBD64 = 0xBD3 - SYS_ILOGBF = 0xA7E - SYS_ILOGBL = 0xA81 - SYS_INET6_IS_SRCADDR = 0xD5A - SYS_ISBLANK = 0x0FE - SYS_ISWALNUM = 0x0FF - SYS_LDEXPD128 = 0xBD7 - SYS_LDEXPD32 = 0xBD5 - SYS_LDEXPD64 = 0xBD6 - SYS_LGAMMAD128 = 0xBDA - SYS_LGAMMAD32 = 0xBD8 - SYS_LGAMMAD64 = 0xBD9 - SYS_LIO_LISTIO = 0xC6A - SYS_LLRINT = 0xA84 - SYS_LLRINTD128 = 0xBDD - SYS_LLRINTD32 = 0xBDB - SYS_LLRINTD64 = 0xBDC - SYS_LLRINTF = 0xA87 - SYS_LLRINTL = 0xA8A - SYS_LLROUND = 0xA8D - SYS_LLROUNDD128 = 0xBE0 - SYS_LLROUNDD32 = 0xBDE - SYS_LLROUNDD64 = 0xBDF - SYS_LLROUNDF = 0xA90 - SYS_LLROUNDL = 0xA93 - SYS_LOCALTIM = 0x0B1 - SYS_LOCALTIME = 0x0B1 - SYS_LOCALTIME64 = 0xCDE - SYS_LOCALTIME64_R = 0xCDF - SYS_LOG10D128 = 0xBE6 - SYS_LOG10D32 = 0xBE4 - SYS_LOG10D64 = 0xBE5 - SYS_LOG1PD128 = 0xBE9 - SYS_LOG1PD32 = 0xBE7 - SYS_LOG1PD64 = 0xBE8 - SYS_LOG2D128 = 0xBEC - SYS_LOG2D32 = 0xBEA - SYS_LOG2D64 = 0xBEB - SYS_LOGBD128 = 0xBEF - SYS_LOGBD32 = 0xBED - SYS_LOGBD64 = 0xBEE - SYS_LOGBF = 0xA96 - SYS_LOGBL = 0xA99 - SYS_LOGD128 = 0xBE3 - SYS_LOGD32 = 0xBE1 - SYS_LOGD64 = 0xBE2 - SYS_LRINT = 0xA9C - SYS_LRINTD128 = 0xBF2 - SYS_LRINTD32 = 0xBF0 - SYS_LRINTD64 = 0xBF1 - SYS_LRINTF = 0xA9F - SYS_LRINTL = 0xAA2 - SYS_LROUNDD128 = 0xBF5 - SYS_LROUNDD32 = 0xBF3 - SYS_LROUNDD64 = 0xBF4 - SYS_LROUNDL = 0xAA5 - SYS_MBLEN = 0x0AF - SYS_MBRTOC16 = 0xD42 - SYS_MBRTOC32 = 0xD43 - SYS_MEMSET = 0x0A3 - SYS_MKTIME = 0x0AC - SYS_MKTIME64 = 0xCE0 - SYS_MODFD128 = 0xBF8 - SYS_MODFD32 = 0xBF6 - SYS_MODFD64 = 0xBF7 - SYS_NAN = 0xAA8 - SYS_NAND128 = 0xBFB - SYS_NAND32 = 0xBF9 - SYS_NAND64 = 0xBFA - SYS_NANF = 0xAAA - SYS_NANL = 0xAAC - SYS_NEARBYINT = 0xAAE - SYS_NEARBYINTD128 = 0xBFE - SYS_NEARBYINTD32 = 0xBFC - SYS_NEARBYINTD64 = 0xBFD - SYS_NEARBYINTF = 0xAB1 - SYS_NEARBYINTL = 0xAB4 - SYS_NEXTAFTERD128 = 0xC01 - SYS_NEXTAFTERD32 = 0xBFF - SYS_NEXTAFTERD64 = 0xC00 - SYS_NEXTAFTERF = 0xAB7 - SYS_NEXTAFTERL = 0xABA - SYS_NEXTTOWARD = 0xABD - SYS_NEXTTOWARDD128 = 0xC04 - SYS_NEXTTOWARDD32 = 0xC02 - SYS_NEXTTOWARDD64 = 0xC03 - SYS_NEXTTOWARDF = 0xAC0 - SYS_NEXTTOWARDL = 0xAC3 - SYS_NL_LANGINFO = 0x0FC - SYS_PERROR_UNLOCKED = 0xCBD - SYS_POSIX_FALLOCATE = 0xCE8 - SYS_POSIX_MEMALIGN = 0xCE9 - SYS_POSIX_OPENPT = 0xC66 - SYS_POWD128 = 0xC07 - SYS_POWD32 = 0xC05 - SYS_POWD64 = 0xC06 - SYS_PRINTF_UNLOCKED = 0xCBE - SYS_PSELECT = 0xC67 - SYS_PTHREAD_ATTR_GETSTACK = 0xB3E - SYS_PTHREAD_ATTR_SETSTACK = 0xB3F - SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 - SYS_PUTS_UNLOCKED = 0xC7F - SYS_PUTWCHAR_UNLOCKED = 0xCC0 - SYS_PUTWC_UNLOCKED = 0xCBF - SYS_QUANTEXPD128 = 0xD46 - SYS_QUANTEXPD32 = 0xD44 - SYS_QUANTEXPD64 = 0xD45 - SYS_QUANTIZED128 = 0xC0A - SYS_QUANTIZED32 = 0xC08 - SYS_QUANTIZED64 = 0xC09 - SYS_REMAINDERD128 = 0xC0D - SYS_REMAINDERD32 = 0xC0B - SYS_REMAINDERD64 = 0xC0C - SYS_RESIZE_ALLOC = 0xCEB - SYS_REWIND_UNLOCKED = 0xCC1 - SYS_RINTD128 = 0xC13 - SYS_RINTD32 = 0xC11 - SYS_RINTD64 = 0xC12 - SYS_RINTF = 0xACB - SYS_RINTL = 0xACD - SYS_ROUND = 0xACF - SYS_ROUNDD128 = 0xC16 - SYS_ROUNDD32 = 0xC14 - SYS_ROUNDD64 = 0xC15 - SYS_ROUNDF = 0xAD2 - SYS_ROUNDL = 0xAD5 - SYS_SAMEQUANTUMD128 = 0xC19 - SYS_SAMEQUANTUMD32 = 0xC17 - SYS_SAMEQUANTUMD64 = 0xC18 - SYS_SCALBLN = 0xAD8 - SYS_SCALBLND128 = 0xC1C - SYS_SCALBLND32 = 0xC1A - SYS_SCALBLND64 = 0xC1B - SYS_SCALBLNF = 0xADB - SYS_SCALBLNL = 0xADE - SYS_SCALBND128 = 0xC1F - SYS_SCALBND32 = 0xC1D - SYS_SCALBND64 = 0xC1E - SYS_SCALBNF = 0xAE3 - SYS_SCALBNL = 0xAE6 - SYS_SCANF_UNLOCKED = 0xCC2 - SYS_SCHED_YIELD = 0xB32 - SYS_SETENV = 0x0C8 - SYS_SETIPV4SOURCEFILTER = 0xC76 - SYS_SETSOURCEFILTER = 0xC78 - SYS_SHM_OPEN = 0xC8C - SYS_SHM_UNLINK = 0xC8D - SYS_SIND128 = 0xC22 - SYS_SIND32 = 0xC20 - SYS_SIND64 = 0xC21 - SYS_SINHD128 = 0xC25 - SYS_SINHD32 = 0xC23 - SYS_SINHD64 = 0xC24 - SYS_SIZEOF_ALLOC = 0xCEA - SYS_SOCKATMARK = 0xC68 - SYS_SQRTD128 = 0xC28 - SYS_SQRTD32 = 0xC26 - SYS_SQRTD64 = 0xC27 - SYS_STRCHR = 0x0A0 - SYS_STRCSPN = 0x0A1 - SYS_STRERROR = 0x0A8 - SYS_STRERROR_R = 0xB33 - SYS_STRFTIME = 0x0B2 - SYS_STRLEN = 0x0A9 - SYS_STRPBRK = 0x0A2 - SYS_STRSPN = 0x0A4 - SYS_STRSTR = 0x0A5 - SYS_STRTOD128 = 0xC2B - SYS_STRTOD32 = 0xC29 - SYS_STRTOD64 = 0xC2A - SYS_STRTOK = 0x0A6 - SYS_TAND128 = 0xC2E - SYS_TAND32 = 0xC2C - SYS_TAND64 = 0xC2D - SYS_TANHD128 = 0xC31 - SYS_TANHD32 = 0xC2F - SYS_TANHD64 = 0xC30 - SYS_TGAMMAD128 = 0xC34 - SYS_TGAMMAD32 = 0xC32 - SYS_TGAMMAD64 = 0xC33 - SYS_TIME = 0x0AD - SYS_TIME64 = 0xCE1 - SYS_TMPFILE64 = 0xD4D - SYS_TMPFILE64_UNLOCKED = 0xD4E - SYS_TMPFILE_UNLOCKED = 0xCFD - SYS_TRUNCD128 = 0xC40 - SYS_TRUNCD32 = 0xC3E - SYS_TRUNCD64 = 0xC3F - SYS_UNGETC_UNLOCKED = 0xCC3 - SYS_UNGETWC_UNLOCKED = 0xCC4 - SYS_UNSETENV = 0xB34 - SYS_VFPRINTF_UNLOCKED = 0xCC5 - SYS_VFSCANF_UNLOCKED = 0xCC7 - SYS_VFWPRINTF_UNLOCKED = 0xCC9 - SYS_VFWSCANF_UNLOCKED = 0xCCB - SYS_VPRINTF_UNLOCKED = 0xCCD - SYS_VSCANF_UNLOCKED = 0xCCF - SYS_VWPRINTF_UNLOCKED = 0xCD1 - SYS_VWSCANF_UNLOCKED = 0xCD3 - SYS_WCSTOD128 = 0xC43 - SYS_WCSTOD32 = 0xC41 - SYS_WCSTOD64 = 0xC42 - SYS_WPRINTF_UNLOCKED = 0xCD5 - SYS_WSCANF_UNLOCKED = 0xCD6 - SYS__FLUSHLBF = 0xD68 - SYS__FLUSHLBF_UNLOCKED = 0xD6F - SYS___ACOSHF_H = 0xA54 - SYS___ACOSHL_H = 0xA55 - SYS___ASINHF_H = 0xA56 - SYS___ASINHL_H = 0xA57 - SYS___ATANPID128 = 0xC6D - SYS___ATANPID32 = 0xC6B - SYS___ATANPID64 = 0xC6C - SYS___CBRTF_H = 0xA58 - SYS___CBRTL_H = 0xA59 - SYS___CDUMP = 0x0C4 - SYS___CLASS = 0xAFA - SYS___CLASS2 = 0xB99 - SYS___CLASS2D128 = 0xC99 - SYS___CLASS2D32 = 0xC97 - SYS___CLASS2D64 = 0xC98 - SYS___CLASS2F = 0xC91 - SYS___CLASS2F_B = 0xC93 - SYS___CLASS2F_H = 0xC94 - SYS___CLASS2L = 0xC92 - SYS___CLASS2L_B = 0xC95 - SYS___CLASS2L_H = 0xC96 - SYS___CLASS2_B = 0xB9A - SYS___CLASS2_H = 0xB9B - SYS___CLASS_B = 0xAFB - SYS___CLASS_H = 0xAFC - SYS___CLOGL_B = 0xA01 - SYS___CLOGL_H = 0xA02 - SYS___CLRENV = 0x0C9 - SYS___CLRMF = 0x0BD - SYS___CODEPAGE_INFO = 0xC64 - SYS___CONJF_B = 0xA07 - SYS___CONJF_H = 0xA08 - SYS___CONJL_B = 0xA0A - SYS___CONJL_H = 0xA0B - SYS___CONJ_B = 0xA04 - SYS___CONJ_H = 0xA05 - SYS___COPYSIGN_B = 0xA5A - SYS___COPYSIGN_H = 0xAF5 - SYS___COSPID128 = 0xC70 - SYS___COSPID32 = 0xC6E - SYS___COSPID64 = 0xC6F - SYS___CPOWF_B = 0xA10 - SYS___CPOWF_H = 0xA11 - SYS___CPOWL_B = 0xA13 - SYS___CPOWL_H = 0xA14 - SYS___CPOW_B = 0xA0D - SYS___CPOW_H = 0xA0E - SYS___CPROJF_B = 0xA19 - SYS___CPROJF_H = 0xA1A - SYS___CPROJL_B = 0xA1C - SYS___CPROJL_H = 0xA1D - SYS___CPROJ_B = 0xA16 - SYS___CPROJ_H = 0xA17 - SYS___CREALF_B = 0xA22 - SYS___CREALF_H = 0xA23 - SYS___CREALL_B = 0xA25 - SYS___CREALL_H = 0xA26 - SYS___CREAL_B = 0xA1F - SYS___CREAL_H = 0xA20 - SYS___CSINF_B = 0xA2B - SYS___CSINF_H = 0xA2C - SYS___CSINHF_B = 0xA34 - SYS___CSINHF_H = 0xA35 - SYS___CSINHL_B = 0xA37 - SYS___CSINHL_H = 0xA38 - SYS___CSINH_B = 0xA31 - SYS___CSINH_H = 0xA32 - SYS___CSINL_B = 0xA2E - SYS___CSINL_H = 0xA2F - SYS___CSIN_B = 0xA28 - SYS___CSIN_H = 0xA29 - SYS___CSNAP = 0x0C5 - SYS___CSQRTF_B = 0xA3D - SYS___CSQRTF_H = 0xA3E - SYS___CSQRTL_B = 0xA40 - SYS___CSQRTL_H = 0xA41 - SYS___CSQRT_B = 0xA3A - SYS___CSQRT_H = 0xA3B - SYS___CTANF_B = 0xA46 - SYS___CTANF_H = 0xA47 - SYS___CTANHF_B = 0xA4F - SYS___CTANHF_H = 0xA50 - SYS___CTANHL_B = 0xA52 - SYS___CTANHL_H = 0xA53 - SYS___CTANH_B = 0xA4C - SYS___CTANH_H = 0xA4D - SYS___CTANL_B = 0xA49 - SYS___CTANL_H = 0xA4A - SYS___CTAN_B = 0xA43 - SYS___CTAN_H = 0xA44 - SYS___CTEST = 0x0C7 - SYS___CTRACE = 0x0C6 - SYS___D1TOP = 0xC9B - SYS___D2TOP = 0xC9C - SYS___D4TOP = 0xC9D - SYS___DYNALL = 0x0C3 - SYS___DYNFRE = 0x0C2 - SYS___EXP2F_H = 0xA5E - SYS___EXP2L_H = 0xA5F - SYS___EXP2_H = 0xA5D - SYS___EXPM1F_H = 0xA5B - SYS___EXPM1L_H = 0xA5C - SYS___FBUFSIZE = 0xD60 - SYS___FLBF = 0xD62 - SYS___FLDATA = 0x0C1 - SYS___FMAF_B = 0xA67 - SYS___FMAF_H = 0xA68 - SYS___FMAL_B = 0xA6A - SYS___FMAL_H = 0xA6B - SYS___FMAXF_B = 0xA70 - SYS___FMAXF_H = 0xA71 - SYS___FMAXL_B = 0xA73 - SYS___FMAXL_H = 0xA74 - SYS___FMAX_B = 0xA6D - SYS___FMAX_H = 0xA6E - SYS___FMA_B = 0xA64 - SYS___FMA_H = 0xA65 - SYS___FMINF_B = 0xA79 - SYS___FMINF_H = 0xA7A - SYS___FMINL_B = 0xA7C - SYS___FMINL_H = 0xA7D - SYS___FMIN_B = 0xA76 - SYS___FMIN_H = 0xA77 - SYS___FPENDING = 0xD61 - SYS___FPENDING_UNLOCKED = 0xD6C - SYS___FPURGE = 0xD69 - SYS___FPURGE_UNLOCKED = 0xD70 - SYS___FP_CAST_D = 0xBCB - SYS___FREADABLE = 0xD63 - SYS___FREADAHEAD = 0xD6A - SYS___FREADAHEAD_UNLOCKED = 0xD71 - SYS___FREADING = 0xD65 - SYS___FREADING_UNLOCKED = 0xD6D - SYS___FSEEK2 = 0xB3C - SYS___FSETERR = 0xD6B - SYS___FSETLOCKING = 0xD67 - SYS___FTCHEP = 0x0BF - SYS___FTELL2 = 0xB3B - SYS___FUPDT = 0x0B5 - SYS___FWRITABLE = 0xD64 - SYS___FWRITING = 0xD66 - SYS___FWRITING_UNLOCKED = 0xD6E - SYS___GETCB = 0x0B4 - SYS___GETGRGID1 = 0xD5B - SYS___GETGRNAM1 = 0xD5C - SYS___GETTHENT = 0xCE5 - SYS___GETTOD = 0xD3E - SYS___HYPOTF_H = 0xAF6 - SYS___HYPOTL_H = 0xAF7 - SYS___ILOGBF_B = 0xA7F - SYS___ILOGBF_H = 0xA80 - SYS___ILOGBL_B = 0xA82 - SYS___ILOGBL_H = 0xA83 - SYS___ISBLANK_A = 0xB2E - SYS___ISBLNK = 0x0FE - SYS___ISWBLANK_A = 0xB2F - SYS___LE_CEEGTJS = 0xD72 - SYS___LE_TRACEBACK = 0xB7A - SYS___LGAMMAL_H = 0xA62 - SYS___LGAMMA_B_C99 = 0xB39 - SYS___LGAMMA_H_C99 = 0xB38 - SYS___LGAMMA_R_C99 = 0xB3A - SYS___LLRINTF_B = 0xA88 - SYS___LLRINTF_H = 0xA89 - SYS___LLRINTL_B = 0xA8B - SYS___LLRINTL_H = 0xA8C - SYS___LLRINT_B = 0xA85 - SYS___LLRINT_H = 0xA86 - SYS___LLROUNDF_B = 0xA91 - SYS___LLROUNDF_H = 0xA92 - SYS___LLROUNDL_B = 0xA94 - SYS___LLROUNDL_H = 0xA95 - SYS___LLROUND_B = 0xA8E - SYS___LLROUND_H = 0xA8F - SYS___LOCALE_CTL = 0xD47 - SYS___LOG1PF_H = 0xA60 - SYS___LOG1PL_H = 0xA61 - SYS___LOGBF_B = 0xA97 - SYS___LOGBF_H = 0xA98 - SYS___LOGBL_B = 0xA9A - SYS___LOGBL_H = 0xA9B - SYS___LOGIN_APPLID = 0xCE2 - SYS___LRINTF_B = 0xAA0 - SYS___LRINTF_H = 0xAA1 - SYS___LRINTL_B = 0xAA3 - SYS___LRINTL_H = 0xAA4 - SYS___LRINT_B = 0xA9D - SYS___LRINT_H = 0xA9E - SYS___LROUNDF_FIXUP = 0xB31 - SYS___LROUNDL_B = 0xAA6 - SYS___LROUNDL_H = 0xAA7 - SYS___LROUND_FIXUP = 0xB30 - SYS___MOSERVICES = 0xD3D - SYS___MUST_STAY_CLEAN = 0xB7C - SYS___NANF_B = 0xAAB - SYS___NANL_B = 0xAAD - SYS___NAN_B = 0xAA9 - SYS___NEARBYINTF_B = 0xAB2 - SYS___NEARBYINTF_H = 0xAB3 - SYS___NEARBYINTL_B = 0xAB5 - SYS___NEARBYINTL_H = 0xAB6 - SYS___NEARBYINT_B = 0xAAF - SYS___NEARBYINT_H = 0xAB0 - SYS___NEXTAFTERF_B = 0xAB8 - SYS___NEXTAFTERF_H = 0xAB9 - SYS___NEXTAFTERL_B = 0xABB - SYS___NEXTAFTERL_H = 0xABC - SYS___NEXTTOWARDF_B = 0xAC1 - SYS___NEXTTOWARDF_H = 0xAC2 - SYS___NEXTTOWARDL_B = 0xAC4 - SYS___NEXTTOWARDL_H = 0xAC5 - SYS___NEXTTOWARD_B = 0xABE - SYS___NEXTTOWARD_H = 0xABF - SYS___O_ENV = 0xB7D - SYS___PASSWD_APPLID = 0xCE3 - SYS___PTOD1 = 0xC9E - SYS___PTOD2 = 0xC9F - SYS___PTOD4 = 0xCA0 - SYS___REGCOMP_STD = 0x0EA - SYS___REMAINDERF_H = 0xAC6 - SYS___REMAINDERL_H = 0xAC7 - SYS___REMQUOD128 = 0xC10 - SYS___REMQUOD32 = 0xC0E - SYS___REMQUOD64 = 0xC0F - SYS___REMQUOF_H = 0xAC9 - SYS___REMQUOL_H = 0xACA - SYS___REMQUO_H = 0xAC8 - SYS___RINTF_B = 0xACC - SYS___RINTL_B = 0xACE - SYS___ROUNDF_B = 0xAD3 - SYS___ROUNDF_H = 0xAD4 - SYS___ROUNDL_B = 0xAD6 - SYS___ROUNDL_H = 0xAD7 - SYS___ROUND_B = 0xAD0 - SYS___ROUND_H = 0xAD1 - SYS___SCALBLNF_B = 0xADC - SYS___SCALBLNF_H = 0xADD - SYS___SCALBLNL_B = 0xADF - SYS___SCALBLNL_H = 0xAE0 - SYS___SCALBLN_B = 0xAD9 - SYS___SCALBLN_H = 0xADA - SYS___SCALBNF_B = 0xAE4 - SYS___SCALBNF_H = 0xAE5 - SYS___SCALBNL_B = 0xAE7 - SYS___SCALBNL_H = 0xAE8 - SYS___SCALBN_B = 0xAE1 - SYS___SCALBN_H = 0xAE2 - SYS___SETENV = 0x0C8 - SYS___SINPID128 = 0xC73 - SYS___SINPID32 = 0xC71 - SYS___SINPID64 = 0xC72 - SYS___SMF_RECORD2 = 0xD48 - SYS___STATIC_REINIT = 0xB3D - SYS___TGAMMAF_H_C99 = 0xB79 - SYS___TGAMMAL_H = 0xAE9 - SYS___TGAMMA_H_C99 = 0xB78 - SYS___TOCSNAME2 = 0xC9A - SYS_CEIL = 0x01F - SYS_CHAUDIT = 0x1E0 - SYS_EXP = 0x01A - SYS_FCHAUDIT = 0x1E1 - SYS_FREXP = 0x01D - SYS_GETGROUPSBYNAME = 0x1E2 - SYS_GETPWUID = 0x1A0 - SYS_GETUID = 0x1A1 - SYS_ISATTY = 0x1A3 - SYS_KILL = 0x1A4 - SYS_LDEXP = 0x01E - SYS_LINK = 0x1A5 - SYS_LOG10 = 0x01C - SYS_LSEEK = 0x1A6 - SYS_LSTAT = 0x1A7 - SYS_MKDIR = 0x1A8 - SYS_MKFIFO = 0x1A9 - SYS_MKNOD = 0x1AA - SYS_MODF = 0x01B - SYS_MOUNT = 0x1AB - SYS_OPEN = 0x1AC - SYS_OPENDIR = 0x1AD - SYS_PATHCONF = 0x1AE - SYS_PAUSE = 0x1AF - SYS_PIPE = 0x1B0 - SYS_PTHREAD_ATTR_DESTROY = 0x1E7 - SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB - SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 - SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED - SYS_PTHREAD_ATTR_INIT = 0x1E6 - SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA - SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 - SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC - SYS_PTHREAD_CANCEL = 0x1EE - SYS_PTHREAD_CLEANUP_POP = 0x1F0 - SYS_PTHREAD_CLEANUP_PUSH = 0x1EF - SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 - SYS_PTHREAD_CONDATTR_INIT = 0x1F1 - SYS_PTHREAD_COND_BROADCAST = 0x1F6 - SYS_PTHREAD_COND_DESTROY = 0x1F4 - SYS_PTHREAD_COND_INIT = 0x1F3 - SYS_PTHREAD_COND_SIGNAL = 0x1F5 - SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 - SYS_PTHREAD_COND_WAIT = 0x1F7 - SYS_PTHREAD_CREATE = 0x1F9 - SYS_PTHREAD_DETACH = 0x1FA - SYS_PTHREAD_EQUAL = 0x1FB - SYS_PTHREAD_EXIT = 0x1E4 - SYS_PTHREAD_GETSPECIFIC = 0x1FC - SYS_PTHREAD_JOIN = 0x1FD - SYS_PTHREAD_KEY_CREATE = 0x1FE - SYS_PTHREAD_KILL = 0x1E5 - SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF - SYS_READ = 0x1B2 - SYS_READDIR = 0x1B3 - SYS_READLINK = 0x1B4 - SYS_REWINDDIR = 0x1B5 - SYS_RMDIR = 0x1B6 - SYS_SETEGID = 0x1B7 - SYS_SETEUID = 0x1B8 - SYS_SETGID = 0x1B9 - SYS_SETPGID = 0x1BA - SYS_SETSID = 0x1BB - SYS_SETUID = 0x1BC - SYS_SIGACTION = 0x1BD - SYS_SIGADDSET = 0x1BE - SYS_SIGDELSET = 0x1BF - SYS_SIGEMPTYSET = 0x1C0 - SYS_SIGFILLSET = 0x1C1 - SYS_SIGISMEMBER = 0x1C2 - SYS_SIGLONGJMP = 0x1C3 - SYS_SIGPENDING = 0x1C4 - SYS_SIGPROCMASK = 0x1C5 - SYS_SIGSETJMP = 0x1C6 - SYS_SIGSUSPEND = 0x1C7 - SYS_SIGWAIT = 0x1E3 - SYS_SLEEP = 0x1C8 - SYS_STAT = 0x1C9 - SYS_SYMLINK = 0x1CB - SYS_SYSCONF = 0x1CC - SYS_TCDRAIN = 0x1CD - SYS_TCFLOW = 0x1CE - SYS_TCFLUSH = 0x1CF - SYS_TCGETATTR = 0x1D0 - SYS_TCGETPGRP = 0x1D1 - SYS_TCSENDBREAK = 0x1D2 - SYS_TCSETATTR = 0x1D3 - SYS_TCSETPGRP = 0x1D4 - SYS_TIMES = 0x1D5 - SYS_TTYNAME = 0x1D6 - SYS_TZSET = 0x1D7 - SYS_UMASK = 0x1D8 - SYS_UMOUNT = 0x1D9 - SYS_UNAME = 0x1DA - SYS_UNLINK = 0x1DB - SYS_UTIME = 0x1DC - SYS_WAIT = 0x1DD - SYS_WAITPID = 0x1DE - SYS_WRITE = 0x1DF - SYS_W_GETPSENT = 0x1B1 - SYS_W_IOCTL = 0x1A2 - SYS_W_STATFS = 0x1CA - SYS_A64L = 0x2EF - SYS_BCMP = 0x2B9 - SYS_BCOPY = 0x2BA - SYS_BZERO = 0x2BB - SYS_CATCLOSE = 0x2B6 - SYS_CATGETS = 0x2B7 - SYS_CATOPEN = 0x2B8 - SYS_CRYPT = 0x2AC - SYS_DBM_CLEARERR = 0x2F7 - SYS_DBM_CLOSE = 0x2F8 - SYS_DBM_DELETE = 0x2F9 - SYS_DBM_ERROR = 0x2FA - SYS_DBM_FETCH = 0x2FB - SYS_DBM_FIRSTKEY = 0x2FC - SYS_DBM_NEXTKEY = 0x2FD - SYS_DBM_OPEN = 0x2FE - SYS_DBM_STORE = 0x2FF - SYS_DRAND48 = 0x2B2 - SYS_ENCRYPT = 0x2AD - SYS_ENDUTXENT = 0x2E1 - SYS_ERAND48 = 0x2B3 - SYS_ERF = 0x02C - SYS_ERFC = 0x02D - SYS_FCHDIR = 0x2D9 - SYS_FFS = 0x2BC - SYS_FMTMSG = 0x2E5 - SYS_FSTATVFS = 0x2B4 - SYS_FTIME = 0x2F5 - SYS_GAMMA = 0x02E - SYS_GETDATE = 0x2A6 - SYS_GETPAGESIZE = 0x2D8 - SYS_GETTIMEOFDAY = 0x2F6 - SYS_GETUTXENT = 0x2E0 - SYS_GETUTXID = 0x2E2 - SYS_GETUTXLINE = 0x2E3 - SYS_HCREATE = 0x2C6 - SYS_HDESTROY = 0x2C7 - SYS_HSEARCH = 0x2C8 - SYS_HYPOT = 0x02B - SYS_INDEX = 0x2BD - SYS_INITSTATE = 0x2C2 - SYS_INSQUE = 0x2CF - SYS_ISASCII = 0x2ED - SYS_JRAND48 = 0x2E6 - SYS_L64A = 0x2F0 - SYS_LCONG48 = 0x2EA - SYS_LFIND = 0x2C9 - SYS_LRAND48 = 0x2E7 - SYS_LSEARCH = 0x2CA - SYS_MEMCCPY = 0x2D4 - SYS_MRAND48 = 0x2E8 - SYS_NRAND48 = 0x2E9 - SYS_PCLOSE = 0x2D2 - SYS_POPEN = 0x2D1 - SYS_PUTUTXLINE = 0x2E4 - SYS_RANDOM = 0x2C4 - SYS_REMQUE = 0x2D0 - SYS_RINDEX = 0x2BE - SYS_SEED48 = 0x2EC - SYS_SETKEY = 0x2AE - SYS_SETSTATE = 0x2C3 - SYS_SETUTXENT = 0x2DF - SYS_SRAND48 = 0x2EB - SYS_SRANDOM = 0x2C5 - SYS_STATVFS = 0x2B5 - SYS_STRCASECMP = 0x2BF - SYS_STRDUP = 0x2C0 - SYS_STRNCASECMP = 0x2C1 - SYS_SWAB = 0x2D3 - SYS_TDELETE = 0x2CB - SYS_TFIND = 0x2CC - SYS_TOASCII = 0x2EE - SYS_TSEARCH = 0x2CD - SYS_TWALK = 0x2CE - SYS_UALARM = 0x2F1 - SYS_USLEEP = 0x2F2 - SYS_WAIT3 = 0x2A7 - SYS_WAITID = 0x2A8 - SYS_Y1 = 0x02A - SYS___ATOE = 0x2DB - SYS___ATOE_L = 0x2DC - SYS___CATTRM = 0x2A9 - SYS___CNVBLK = 0x2AF - SYS___CRYTRM = 0x2B0 - SYS___DLGHT = 0x2A1 - SYS___ECRTRM = 0x2B1 - SYS___ETOA = 0x2DD - SYS___ETOA_L = 0x2DE - SYS___GDTRM = 0x2AA - SYS___OCLCK = 0x2DA - SYS___OPARGF = 0x2A2 - SYS___OPERRF = 0x2A5 - SYS___OPINDF = 0x2A4 - SYS___OPOPTF = 0x2A3 - SYS___RNDTRM = 0x2AB - SYS___SRCTRM = 0x2F4 - SYS___TZONE = 0x2A0 - SYS___UTXTRM = 0x2F3 - SYS_ASIN = 0x03E - SYS_ISXDIGIT = 0x03B - SYS_SETLOCAL = 0x03A - SYS_SETLOCALE = 0x03A - SYS_SIN = 0x03F - SYS_TOLOWER = 0x03C - SYS_TOUPPER = 0x03D - SYS_ACCEPT_AND_RECV = 0x4F7 - SYS_ATOL = 0x04E - SYS_CHECKSCH = 0x4BC - SYS_CHECKSCHENV = 0x4BC - SYS_CLEARERR = 0x04C - SYS_CONNECTS = 0x4B5 - SYS_CONNECTSERVER = 0x4B5 - SYS_CONNECTW = 0x4B4 - SYS_CONNECTWORKMGR = 0x4B4 - SYS_CONTINUE = 0x4B3 - SYS_CONTINUEWORKUNIT = 0x4B3 - SYS_COPYSIGN = 0x4C2 - SYS_CREATEWO = 0x4B2 - SYS_CREATEWORKUNIT = 0x4B2 - SYS_DELETEWO = 0x4B9 - SYS_DELETEWORKUNIT = 0x4B9 - SYS_DISCONNE = 0x4B6 - SYS_DISCONNECTSERVER = 0x4B6 - SYS_FEOF = 0x04D - SYS_FERROR = 0x04A - SYS_FINITE = 0x4C8 - SYS_GAMMA_R = 0x4E2 - SYS_JOINWORK = 0x4B7 - SYS_JOINWORKUNIT = 0x4B7 - SYS_LEAVEWOR = 0x4B8 - SYS_LEAVEWORKUNIT = 0x4B8 - SYS_LGAMMA_R = 0x4EB - SYS_MATHERR = 0x4D0 - SYS_PERROR = 0x04F - SYS_QUERYMET = 0x4BA - SYS_QUERYMETRICS = 0x4BA - SYS_QUERYSCH = 0x4BB - SYS_QUERYSCHENV = 0x4BB - SYS_REWIND = 0x04B - SYS_SCALBN = 0x4D4 - SYS_SIGNIFIC = 0x4D5 - SYS_SIGNIFICAND = 0x4D5 - SYS___ACOSH_B = 0x4DA - SYS___ACOS_B = 0x4D9 - SYS___ASINH_B = 0x4BE - SYS___ASIN_B = 0x4DB - SYS___ATAN2_B = 0x4DC - SYS___ATANH_B = 0x4DD - SYS___ATAN_B = 0x4BF - SYS___CBRT_B = 0x4C0 - SYS___CEIL_B = 0x4C1 - SYS___COSH_B = 0x4DE - SYS___COS_B = 0x4C3 - SYS___DGHT = 0x4A8 - SYS___ENVN = 0x4B0 - SYS___ERFC_B = 0x4C5 - SYS___ERF_B = 0x4C4 - SYS___EXPM1_B = 0x4C6 - SYS___EXP_B = 0x4DF - SYS___FABS_B = 0x4C7 - SYS___FLOOR_B = 0x4C9 - SYS___FMOD_B = 0x4E0 - SYS___FP_SETMODE = 0x4F8 - SYS___FREXP_B = 0x4CA - SYS___GAMMA_B = 0x4E1 - SYS___GDRR = 0x4A1 - SYS___HRRNO = 0x4A2 - SYS___HYPOT_B = 0x4E3 - SYS___ILOGB_B = 0x4CB - SYS___ISNAN_B = 0x4CC - SYS___J0_B = 0x4E4 - SYS___J1_B = 0x4E6 - SYS___JN_B = 0x4E8 - SYS___LDEXP_B = 0x4CD - SYS___LGAMMA_B = 0x4EA - SYS___LOG10_B = 0x4ED - SYS___LOG1P_B = 0x4CE - SYS___LOGB_B = 0x4CF - SYS___LOGIN = 0x4F5 - SYS___LOG_B = 0x4EC - SYS___MLOCKALL = 0x4B1 - SYS___MODF_B = 0x4D1 - SYS___NEXTAFTER_B = 0x4D2 - SYS___OPENDIR2 = 0x4F3 - SYS___OPEN_STAT = 0x4F6 - SYS___OPND = 0x4A5 - SYS___OPPT = 0x4A6 - SYS___OPRG = 0x4A3 - SYS___OPRR = 0x4A4 - SYS___PID_AFFINITY = 0x4BD - SYS___POW_B = 0x4EE - SYS___READDIR2 = 0x4F4 - SYS___REMAINDER_B = 0x4EF - SYS___RINT_B = 0x4D3 - SYS___SCALB_B = 0x4F0 - SYS___SIGACTIONSET = 0x4FB - SYS___SIGGM = 0x4A7 - SYS___SINH_B = 0x4F1 - SYS___SIN_B = 0x4D6 - SYS___SQRT_B = 0x4F2 - SYS___TANH_B = 0x4D8 - SYS___TAN_B = 0x4D7 - SYS___TRRNO = 0x4AF - SYS___TZNE = 0x4A9 - SYS___TZZN = 0x4AA - SYS___UCREATE = 0x4FC - SYS___UFREE = 0x4FE - SYS___UHEAPREPORT = 0x4FF - SYS___UMALLOC = 0x4FD - SYS___Y0_B = 0x4E5 - SYS___Y1_B = 0x4E7 - SYS___YN_B = 0x4E9 - SYS_ABORT = 0x05C - SYS_ASCTIME_R = 0x5E0 - SYS_ATEXIT = 0x05D - SYS_CONNECTE = 0x5AE - SYS_CONNECTEXPORTIMPORT = 0x5AE - SYS_CTIME_R = 0x5E1 - SYS_DN_COMP = 0x5DF - SYS_DN_EXPAND = 0x5DD - SYS_DN_SKIPNAME = 0x5DE - SYS_EXIT = 0x05A - SYS_EXPORTWO = 0x5A1 - SYS_EXPORTWORKUNIT = 0x5A1 - SYS_EXTRACTW = 0x5A5 - SYS_EXTRACTWORKUNIT = 0x5A5 - SYS_FSEEKO = 0x5C9 - SYS_FTELLO = 0x5C8 - SYS_GETGRGID_R = 0x5E7 - SYS_GETGRNAM_R = 0x5E8 - SYS_GETLOGIN_R = 0x5E9 - SYS_GETPWNAM_R = 0x5EA - SYS_GETPWUID_R = 0x5EB - SYS_GMTIME_R = 0x5E2 - SYS_IMPORTWO = 0x5A3 - SYS_IMPORTWORKUNIT = 0x5A3 - SYS_INET_NTOP = 0x5D3 - SYS_INET_PTON = 0x5D4 - SYS_LLABS = 0x5CE - SYS_LLDIV = 0x5CB - SYS_LOCALTIME_R = 0x5E3 - SYS_PTHREAD_ATFORK = 0x5ED - SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB - SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE - SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 - SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF - SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC - SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 - SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA - SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 - SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 - SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 - SYS_PTHREAD_DETACH_U98 = 0x5FD - SYS_PTHREAD_GETCONCURRENCY = 0x5F4 - SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE - SYS_PTHREAD_KEY_DELETE = 0x5F5 - SYS_PTHREAD_SETCANCELSTATE = 0x5FF - SYS_PTHREAD_SETCONCURRENCY = 0x5F6 - SYS_PTHREAD_SIGMASK = 0x5F7 - SYS_QUERYENC = 0x5AD - SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD - SYS_RAISE = 0x05E - SYS_RAND_R = 0x5E4 - SYS_READDIR_R = 0x5E6 - SYS_REALLOC = 0x05B - SYS_RES_INIT = 0x5D8 - SYS_RES_MKQUERY = 0x5D7 - SYS_RES_QUERY = 0x5D9 - SYS_RES_QUERYDOMAIN = 0x5DC - SYS_RES_SEARCH = 0x5DA - SYS_RES_SEND = 0x5DB - SYS_SETJMP = 0x05F - SYS_SIGQUEUE = 0x5A9 - SYS_STRTOK_R = 0x5E5 - SYS_STRTOLL = 0x5B0 - SYS_STRTOULL = 0x5B1 - SYS_TTYNAME_R = 0x5EC - SYS_UNDOEXPO = 0x5A2 - SYS_UNDOEXPORTWORKUNIT = 0x5A2 - SYS_UNDOIMPO = 0x5A4 - SYS_UNDOIMPORTWORKUNIT = 0x5A4 - SYS_WCSTOLL = 0x5CC - SYS_WCSTOULL = 0x5CD - SYS___ABORT = 0x05C - SYS___CONSOLE2 = 0x5D2 - SYS___CPL = 0x5A6 - SYS___DISCARDDATA = 0x5F8 - SYS___DSA_PREV = 0x5B2 - SYS___EP_FIND = 0x5B3 - SYS___FP_SWAPMODE = 0x5AF - SYS___GETUSERID = 0x5AB - SYS___GET_CPUID = 0x5B9 - SYS___GET_SYSTEM_SETTINGS = 0x5BA - SYS___IPDOMAINNAME = 0x5AC - SYS___MAP_INIT = 0x5A7 - SYS___MAP_SERVICE = 0x5A8 - SYS___MOUNT = 0x5AA - SYS___MSGRCV_TIMED = 0x5B7 - SYS___RES = 0x5D6 - SYS___SEMOP_TIMED = 0x5B8 - SYS___SERVER_THREADS_QUERY = 0x5B4 - SYS_FPRINTF = 0x06D - SYS_FSCANF = 0x06A - SYS_PRINTF = 0x06F - SYS_SETBUF = 0x06B - SYS_SETVBUF = 0x06C - SYS_SSCANF = 0x06E - SYS___CATGETS_A = 0x6C0 - SYS___CHAUDIT_A = 0x6F4 - SYS___CHMOD_A = 0x6E8 - SYS___COLLATE_INIT_A = 0x6AC - SYS___CREAT_A = 0x6F6 - SYS___CTYPE_INIT_A = 0x6AF - SYS___DLLLOAD_A = 0x6DF - SYS___DLLQUERYFN_A = 0x6E0 - SYS___DLLQUERYVAR_A = 0x6E1 - SYS___E2A_L = 0x6E3 - SYS___EXECLE_A = 0x6A0 - SYS___EXECLP_A = 0x6A4 - SYS___EXECVE_A = 0x6C1 - SYS___EXECVP_A = 0x6C2 - SYS___EXECV_A = 0x6B1 - SYS___FPRINTF_A = 0x6FA - SYS___GETADDRINFO_A = 0x6BF - SYS___GETNAMEINFO_A = 0x6C4 - SYS___GET_WCTYPE_STD_A = 0x6AE - SYS___ICONV_OPEN_A = 0x6DE - SYS___IF_INDEXTONAME_A = 0x6DC - SYS___IF_NAMETOINDEX_A = 0x6DB - SYS___ISWCTYPE_A = 0x6B0 - SYS___IS_WCTYPE_STD_A = 0x6B2 - SYS___LOCALECONV_A = 0x6B8 - SYS___LOCALECONV_STD_A = 0x6B9 - SYS___LOCALE_INIT_A = 0x6B7 - SYS___LSTAT_A = 0x6EE - SYS___LSTAT_O_A = 0x6EF - SYS___MKDIR_A = 0x6E9 - SYS___MKFIFO_A = 0x6EC - SYS___MKNOD_A = 0x6F0 - SYS___MONETARY_INIT_A = 0x6BC - SYS___MOUNT_A = 0x6F1 - SYS___NL_CSINFO_A = 0x6D6 - SYS___NL_LANGINFO_A = 0x6BA - SYS___NL_LNAGINFO_STD_A = 0x6BB - SYS___NL_MONINFO_A = 0x6D7 - SYS___NL_NUMINFO_A = 0x6D8 - SYS___NL_RESPINFO_A = 0x6D9 - SYS___NL_TIMINFO_A = 0x6DA - SYS___NUMERIC_INIT_A = 0x6C6 - SYS___OPEN_A = 0x6F7 - SYS___PRINTF_A = 0x6DD - SYS___RESP_INIT_A = 0x6C7 - SYS___RPMATCH_A = 0x6C8 - SYS___RPMATCH_C_A = 0x6C9 - SYS___RPMATCH_STD_A = 0x6CA - SYS___SETLOCALE_A = 0x6F9 - SYS___SPAWNP_A = 0x6C5 - SYS___SPAWN_A = 0x6C3 - SYS___SPRINTF_A = 0x6FB - SYS___STAT_A = 0x6EA - SYS___STAT_O_A = 0x6EB - SYS___STRCOLL_STD_A = 0x6A1 - SYS___STRFMON_A = 0x6BD - SYS___STRFMON_STD_A = 0x6BE - SYS___STRFTIME_A = 0x6CC - SYS___STRFTIME_STD_A = 0x6CD - SYS___STRPTIME_A = 0x6CE - SYS___STRPTIME_STD_A = 0x6CF - SYS___STRXFRM_A = 0x6A2 - SYS___STRXFRM_C_A = 0x6A3 - SYS___STRXFRM_STD_A = 0x6A5 - SYS___SYNTAX_INIT_A = 0x6D4 - SYS___TIME_INIT_A = 0x6CB - SYS___TOD_INIT_A = 0x6D5 - SYS___TOWLOWER_A = 0x6B3 - SYS___TOWLOWER_STD_A = 0x6B4 - SYS___TOWUPPER_A = 0x6B5 - SYS___TOWUPPER_STD_A = 0x6B6 - SYS___UMOUNT_A = 0x6F2 - SYS___VFPRINTF_A = 0x6FC - SYS___VPRINTF_A = 0x6FD - SYS___VSPRINTF_A = 0x6FE - SYS___VSWPRINTF_A = 0x6FF - SYS___WCSCOLL_A = 0x6A6 - SYS___WCSCOLL_C_A = 0x6A7 - SYS___WCSCOLL_STD_A = 0x6A8 - SYS___WCSFTIME_A = 0x6D0 - SYS___WCSFTIME_STD_A = 0x6D1 - SYS___WCSXFRM_A = 0x6A9 - SYS___WCSXFRM_C_A = 0x6AA - SYS___WCSXFRM_STD_A = 0x6AB - SYS___WCTYPE_A = 0x6AD - SYS___W_GETMNTENT_A = 0x6F5 - SYS_____CCSIDTYPE_A = 0x6E6 - SYS_____CHATTR_A = 0x6E2 - SYS_____CSNAMETYPE_A = 0x6E7 - SYS_____OPEN_STAT_A = 0x6ED - SYS_____SPAWN2_A = 0x6D2 - SYS_____SPAWNP2_A = 0x6D3 - SYS_____TOCCSID_A = 0x6E4 - SYS_____TOCSNAME_A = 0x6E5 - SYS_ACL_FREE = 0x7FF - SYS_ACL_INIT = 0x7FE - SYS_FWIDE = 0x7DF - SYS_FWPRINTF = 0x7D1 - SYS_FWRITE = 0x07E - SYS_FWSCANF = 0x7D5 - SYS_GETCHAR = 0x07B - SYS_GETS = 0x07C - SYS_M_CREATE_LAYOUT = 0x7C9 - SYS_M_DESTROY_LAYOUT = 0x7CA - SYS_M_GETVALUES_LAYOUT = 0x7CB - SYS_M_SETVALUES_LAYOUT = 0x7CC - SYS_M_TRANSFORM_LAYOUT = 0x7CD - SYS_M_WTRANSFORM_LAYOUT = 0x7CE - SYS_PREAD = 0x7C7 - SYS_PUTC = 0x07D - SYS_PUTCHAR = 0x07A - SYS_PUTS = 0x07F - SYS_PWRITE = 0x7C8 - SYS_TOWCTRAN = 0x7D8 - SYS_TOWCTRANS = 0x7D8 - SYS_UNATEXIT = 0x7B5 - SYS_VFWPRINT = 0x7D3 - SYS_VFWPRINTF = 0x7D3 - SYS_VWPRINTF = 0x7D4 - SYS_WCTRANS = 0x7D7 - SYS_WPRINTF = 0x7D2 - SYS_WSCANF = 0x7D6 - SYS___ASCTIME_R_A = 0x7A1 - SYS___BASENAME_A = 0x7DC - SYS___BTOWC_A = 0x7E4 - SYS___CDUMP_A = 0x7B7 - SYS___CEE3DMP_A = 0x7B6 - SYS___CEILF_H = 0x7F4 - SYS___CEILL_H = 0x7F5 - SYS___CEIL_H = 0x7EA - SYS___CRYPT_A = 0x7BE - SYS___CSNAP_A = 0x7B8 - SYS___CTEST_A = 0x7B9 - SYS___CTIME_R_A = 0x7A2 - SYS___CTRACE_A = 0x7BA - SYS___DBM_OPEN_A = 0x7E6 - SYS___DIRNAME_A = 0x7DD - SYS___FABSF_H = 0x7FA - SYS___FABSL_H = 0x7FB - SYS___FABS_H = 0x7ED - SYS___FGETWC_A = 0x7AA - SYS___FGETWS_A = 0x7AD - SYS___FLOORF_H = 0x7F6 - SYS___FLOORL_H = 0x7F7 - SYS___FLOOR_H = 0x7EB - SYS___FPUTWC_A = 0x7A5 - SYS___FPUTWS_A = 0x7A8 - SYS___GETTIMEOFDAY_A = 0x7AE - SYS___GETWCHAR_A = 0x7AC - SYS___GETWC_A = 0x7AB - SYS___GLOB_A = 0x7DE - SYS___GMTIME_A = 0x7AF - SYS___GMTIME_R_A = 0x7B0 - SYS___INET_PTON_A = 0x7BC - SYS___J0_H = 0x7EE - SYS___J1_H = 0x7EF - SYS___JN_H = 0x7F0 - SYS___LOCALTIME_A = 0x7B1 - SYS___LOCALTIME_R_A = 0x7B2 - SYS___MALLOC24 = 0x7FC - SYS___MALLOC31 = 0x7FD - SYS___MKTIME_A = 0x7B3 - SYS___MODFF_H = 0x7F8 - SYS___MODFL_H = 0x7F9 - SYS___MODF_H = 0x7EC - SYS___OPENDIR_A = 0x7C2 - SYS___OSNAME = 0x7E0 - SYS___PUTWCHAR_A = 0x7A7 - SYS___PUTWC_A = 0x7A6 - SYS___READDIR_A = 0x7C3 - SYS___STRTOLL_A = 0x7A3 - SYS___STRTOULL_A = 0x7A4 - SYS___SYSLOG_A = 0x7BD - SYS___TZZNA = 0x7B4 - SYS___UNGETWC_A = 0x7A9 - SYS___UTIME_A = 0x7A0 - SYS___VFPRINTF2_A = 0x7E7 - SYS___VPRINTF2_A = 0x7E8 - SYS___VSPRINTF2_A = 0x7E9 - SYS___VSWPRNTF2_A = 0x7BB - SYS___WCSTOD_A = 0x7D9 - SYS___WCSTOL_A = 0x7DA - SYS___WCSTOUL_A = 0x7DB - SYS___WCTOB_A = 0x7E5 - SYS___Y0_H = 0x7F1 - SYS___Y1_H = 0x7F2 - SYS___YN_H = 0x7F3 - SYS_____OPENDIR2_A = 0x7BF - SYS_____OSNAME_A = 0x7E1 - SYS_____READDIR2_A = 0x7C0 - SYS_DLCLOSE = 0x8DF - SYS_DLERROR = 0x8E0 - SYS_DLOPEN = 0x8DD - SYS_DLSYM = 0x8DE - SYS_FLOCKFILE = 0x8D3 - SYS_FTRYLOCKFILE = 0x8D4 - SYS_FUNLOCKFILE = 0x8D5 - SYS_GETCHAR_UNLOCKED = 0x8D7 - SYS_GETC_UNLOCKED = 0x8D6 - SYS_PUTCHAR_UNLOCKED = 0x8D9 - SYS_PUTC_UNLOCKED = 0x8D8 - SYS_SNPRINTF = 0x8DA - SYS_VSNPRINTF = 0x8DB - SYS_WCSCSPN = 0x08B - SYS_WCSLEN = 0x08C - SYS_WCSNCAT = 0x08D - SYS_WCSNCMP = 0x08A - SYS_WCSNCPY = 0x08F - SYS_WCSSPN = 0x08E - SYS___ABSF_H = 0x8E7 - SYS___ABSL_H = 0x8E8 - SYS___ABS_H = 0x8E6 - SYS___ACOSF_H = 0x8EA - SYS___ACOSH_H = 0x8EC - SYS___ACOSL_H = 0x8EB - SYS___ACOS_H = 0x8E9 - SYS___ASINF_H = 0x8EE - SYS___ASINH_H = 0x8F0 - SYS___ASINL_H = 0x8EF - SYS___ASIN_H = 0x8ED - SYS___ATAN2F_H = 0x8F8 - SYS___ATAN2L_H = 0x8F9 - SYS___ATAN2_H = 0x8F7 - SYS___ATANF_H = 0x8F2 - SYS___ATANHF_H = 0x8F5 - SYS___ATANHL_H = 0x8F6 - SYS___ATANH_H = 0x8F4 - SYS___ATANL_H = 0x8F3 - SYS___ATAN_H = 0x8F1 - SYS___CBRT_H = 0x8FA - SYS___COPYSIGNF_H = 0x8FB - SYS___COPYSIGNL_H = 0x8FC - SYS___COSF_H = 0x8FE - SYS___COSL_H = 0x8FF - SYS___COS_H = 0x8FD - SYS___DLERROR_A = 0x8D2 - SYS___DLOPEN_A = 0x8D0 - SYS___DLSYM_A = 0x8D1 - SYS___GETUTXENT_A = 0x8C6 - SYS___GETUTXID_A = 0x8C7 - SYS___GETUTXLINE_A = 0x8C8 - SYS___ITOA = 0x8AA - SYS___ITOA_A = 0x8B0 - SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 - SYS___LE_MSG_ADD_INSERT = 0x8A6 - SYS___LE_MSG_GET = 0x8A7 - SYS___LE_MSG_GET_AND_WRITE = 0x8A8 - SYS___LE_MSG_WRITE = 0x8A9 - SYS___LLTOA = 0x8AE - SYS___LLTOA_A = 0x8B4 - SYS___LTOA = 0x8AC - SYS___LTOA_A = 0x8B2 - SYS___PUTCHAR_UNLOCKED_A = 0x8CC - SYS___PUTC_UNLOCKED_A = 0x8CB - SYS___PUTUTXLINE_A = 0x8C9 - SYS___RESET_EXCEPTION_HANDLER = 0x8E3 - SYS___REXEC_A = 0x8C4 - SYS___REXEC_AF_A = 0x8C5 - SYS___SET_EXCEPTION_HANDLER = 0x8E2 - SYS___SNPRINTF_A = 0x8CD - SYS___SUPERKILL = 0x8A4 - SYS___TCGETATTR_A = 0x8A1 - SYS___TCSETATTR_A = 0x8A2 - SYS___ULLTOA = 0x8AF - SYS___ULLTOA_A = 0x8B5 - SYS___ULTOA = 0x8AD - SYS___ULTOA_A = 0x8B3 - SYS___UTOA = 0x8AB - SYS___UTOA_A = 0x8B1 - SYS___VHM_EVENT = 0x8E4 - SYS___VSNPRINTF_A = 0x8CE - SYS_____GETENV_A = 0x8C3 - SYS_____UTMPXNAME_A = 0x8CA - SYS_CACOSH = 0x9A0 - SYS_CACOSHF = 0x9A3 - SYS_CACOSHL = 0x9A6 - SYS_CARG = 0x9A9 - SYS_CARGF = 0x9AC - SYS_CARGL = 0x9AF - SYS_CASIN = 0x9B2 - SYS_CASINF = 0x9B5 - SYS_CASINH = 0x9BB - SYS_CASINHF = 0x9BE - SYS_CASINHL = 0x9C1 - SYS_CASINL = 0x9B8 - SYS_CATAN = 0x9C4 - SYS_CATANF = 0x9C7 - SYS_CATANH = 0x9CD - SYS_CATANHF = 0x9D0 - SYS_CATANHL = 0x9D3 - SYS_CATANL = 0x9CA - SYS_CCOS = 0x9D6 - SYS_CCOSF = 0x9D9 - SYS_CCOSH = 0x9DF - SYS_CCOSHF = 0x9E2 - SYS_CCOSHL = 0x9E5 - SYS_CCOSL = 0x9DC - SYS_CEXP = 0x9E8 - SYS_CEXPF = 0x9EB - SYS_CEXPL = 0x9EE - SYS_CIMAG = 0x9F1 - SYS_CIMAGF = 0x9F4 - SYS_CIMAGL = 0x9F7 - SYS_CLOGF = 0x9FD - SYS_MEMCHR = 0x09B - SYS_MEMCMP = 0x09A - SYS_STRCOLL = 0x09C - SYS_STRNCMP = 0x09D - SYS_STRRCHR = 0x09F - SYS_STRXFRM = 0x09E - SYS___CACOSHF_B = 0x9A4 - SYS___CACOSHF_H = 0x9A5 - SYS___CACOSHL_B = 0x9A7 - SYS___CACOSHL_H = 0x9A8 - SYS___CACOSH_B = 0x9A1 - SYS___CACOSH_H = 0x9A2 - SYS___CARGF_B = 0x9AD - SYS___CARGF_H = 0x9AE - SYS___CARGL_B = 0x9B0 - SYS___CARGL_H = 0x9B1 - SYS___CARG_B = 0x9AA - SYS___CARG_H = 0x9AB - SYS___CASINF_B = 0x9B6 - SYS___CASINF_H = 0x9B7 - SYS___CASINHF_B = 0x9BF - SYS___CASINHF_H = 0x9C0 - SYS___CASINHL_B = 0x9C2 - SYS___CASINHL_H = 0x9C3 - SYS___CASINH_B = 0x9BC - SYS___CASINH_H = 0x9BD - SYS___CASINL_B = 0x9B9 - SYS___CASINL_H = 0x9BA - SYS___CASIN_B = 0x9B3 - SYS___CASIN_H = 0x9B4 - SYS___CATANF_B = 0x9C8 - SYS___CATANF_H = 0x9C9 - SYS___CATANHF_B = 0x9D1 - SYS___CATANHF_H = 0x9D2 - SYS___CATANHL_B = 0x9D4 - SYS___CATANHL_H = 0x9D5 - SYS___CATANH_B = 0x9CE - SYS___CATANH_H = 0x9CF - SYS___CATANL_B = 0x9CB - SYS___CATANL_H = 0x9CC - SYS___CATAN_B = 0x9C5 - SYS___CATAN_H = 0x9C6 - SYS___CCOSF_B = 0x9DA - SYS___CCOSF_H = 0x9DB - SYS___CCOSHF_B = 0x9E3 - SYS___CCOSHF_H = 0x9E4 - SYS___CCOSHL_B = 0x9E6 - SYS___CCOSHL_H = 0x9E7 - SYS___CCOSH_B = 0x9E0 - SYS___CCOSH_H = 0x9E1 - SYS___CCOSL_B = 0x9DD - SYS___CCOSL_H = 0x9DE - SYS___CCOS_B = 0x9D7 - SYS___CCOS_H = 0x9D8 - SYS___CEXPF_B = 0x9EC - SYS___CEXPF_H = 0x9ED - SYS___CEXPL_B = 0x9EF - SYS___CEXPL_H = 0x9F0 - SYS___CEXP_B = 0x9E9 - SYS___CEXP_H = 0x9EA - SYS___CIMAGF_B = 0x9F5 - SYS___CIMAGF_H = 0x9F6 - SYS___CIMAGL_B = 0x9F8 - SYS___CIMAGL_H = 0x9F9 - SYS___CIMAG_B = 0x9F2 - SYS___CIMAG_H = 0x9F3 - SYS___CLOG = 0x9FA - SYS___CLOGF_B = 0x9FE - SYS___CLOGF_H = 0x9FF - SYS___CLOG_B = 0x9FB - SYS___CLOG_H = 0x9FC - SYS_ISWCTYPE = 0x10C - SYS_ISWXDIGI = 0x10A - SYS_ISWXDIGIT = 0x10A - SYS_MBSINIT = 0x10F - SYS_TOWLOWER = 0x10D - SYS_TOWUPPER = 0x10E - SYS_WCTYPE = 0x10B - SYS_WCSSTR = 0x11B - SYS___RPMTCH = 0x11A - SYS_WCSTOD = 0x12E - SYS_WCSTOK = 0x12C - SYS_WCSTOL = 0x12D - SYS_WCSTOUL = 0x12F - SYS_FGETWC = 0x13C - SYS_FGETWS = 0x13D - SYS_FPUTWC = 0x13E - SYS_FPUTWS = 0x13F - SYS_REGERROR = 0x13B - SYS_REGFREE = 0x13A - SYS_COLLEQUIV = 0x14F - SYS_COLLTOSTR = 0x14E - SYS_ISMCCOLLEL = 0x14C - SYS_STRTOCOLL = 0x14D - SYS_DLLFREE = 0x16F - SYS_DLLQUERYFN = 0x16D - SYS_DLLQUERYVAR = 0x16E - SYS_GETMCCOLL = 0x16A - SYS_GETWMCCOLL = 0x16B - SYS___ERR2AD = 0x16C - SYS_CFSETOSPEED = 0x17A - SYS_CHDIR = 0x17B - SYS_CHMOD = 0x17C - SYS_CHOWN = 0x17D - SYS_CLOSE = 0x17E - SYS_CLOSEDIR = 0x17F - SYS_LOG = 0x017 - SYS_COSH = 0x018 - SYS_FCHMOD = 0x18A - SYS_FCHOWN = 0x18B - SYS_FCNTL = 0x18C - SYS_FILENO = 0x18D - SYS_FORK = 0x18E - SYS_FPATHCONF = 0x18F - SYS_GETLOGIN = 0x19A - SYS_GETPGRP = 0x19C - SYS_GETPID = 0x19D - SYS_GETPPID = 0x19E - SYS_GETPWNAM = 0x19F - SYS_TANH = 0x019 - SYS_W_GETMNTENT = 0x19B - SYS_POW = 0x020 - SYS_PTHREAD_SELF = 0x20A - SYS_PTHREAD_SETINTR = 0x20B - SYS_PTHREAD_SETINTRTYPE = 0x20C - SYS_PTHREAD_SETSPECIFIC = 0x20D - SYS_PTHREAD_TESTINTR = 0x20E - SYS_PTHREAD_YIELD = 0x20F - SYS_SQRT = 0x021 - SYS_FLOOR = 0x022 - SYS_J1 = 0x023 - SYS_WCSPBRK = 0x23F - SYS_BSEARCH = 0x24C - SYS_FABS = 0x024 - SYS_GETENV = 0x24A - SYS_LDIV = 0x24D - SYS_SYSTEM = 0x24B - SYS_FMOD = 0x025 - SYS___RETHROW = 0x25F - SYS___THROW = 0x25E - SYS_J0 = 0x026 - SYS_PUTENV = 0x26A - SYS___GETENV = 0x26F - SYS_SEMCTL = 0x27A - SYS_SEMGET = 0x27B - SYS_SEMOP = 0x27C - SYS_SHMAT = 0x27D - SYS_SHMCTL = 0x27E - SYS_SHMDT = 0x27F - SYS_YN = 0x027 - SYS_JN = 0x028 - SYS_SIGALTSTACK = 0x28A - SYS_SIGHOLD = 0x28B - SYS_SIGIGNORE = 0x28C - SYS_SIGINTERRUPT = 0x28D - SYS_SIGPAUSE = 0x28E - SYS_SIGRELSE = 0x28F - SYS_GETOPT = 0x29A - SYS_GETSUBOPT = 0x29D - SYS_LCHOWN = 0x29B - SYS_SETPGRP = 0x29E - SYS_TRUNCATE = 0x29C - SYS_Y0 = 0x029 - SYS___GDERR = 0x29F - SYS_ISALPHA = 0x030 - SYS_VFORK = 0x30F - SYS__LONGJMP = 0x30D - SYS__SETJMP = 0x30E - SYS_GLOB = 0x31A - SYS_GLOBFREE = 0x31B - SYS_ISALNUM = 0x031 - SYS_PUTW = 0x31C - SYS_SEEKDIR = 0x31D - SYS_TELLDIR = 0x31E - SYS_TEMPNAM = 0x31F - SYS_GETTIMEOFDAY_R = 0x32E - SYS_ISLOWER = 0x032 - SYS_LGAMMA = 0x32C - SYS_REMAINDER = 0x32A - SYS_SCALB = 0x32B - SYS_SYNC = 0x32F - SYS_TTYSLOT = 0x32D - SYS_ENDPROTOENT = 0x33A - SYS_ENDSERVENT = 0x33B - SYS_GETHOSTBYADDR = 0x33D - SYS_GETHOSTBYADDR_R = 0x33C - SYS_GETHOSTBYNAME = 0x33F - SYS_GETHOSTBYNAME_R = 0x33E - SYS_ISCNTRL = 0x033 - SYS_GETSERVBYNAME = 0x34A - SYS_GETSERVBYPORT = 0x34B - SYS_GETSERVENT = 0x34C - SYS_GETSOCKNAME = 0x34D - SYS_GETSOCKOPT = 0x34E - SYS_INET_ADDR = 0x34F - SYS_ISDIGIT = 0x034 - SYS_ISGRAPH = 0x035 - SYS_SELECT = 0x35B - SYS_SELECTEX = 0x35C - SYS_SEND = 0x35D - SYS_SENDTO = 0x35F - SYS_CHROOT = 0x36A - SYS_ISNAN = 0x36D - SYS_ISUPPER = 0x036 - SYS_ULIMIT = 0x36C - SYS_UTIMES = 0x36E - SYS_W_STATVFS = 0x36B - SYS___H_ERRNO = 0x36F - SYS_GRANTPT = 0x37A - SYS_ISPRINT = 0x037 - SYS_TCGETSID = 0x37C - SYS_UNLOCKPT = 0x37B - SYS___TCGETCP = 0x37D - SYS___TCSETCP = 0x37E - SYS___TCSETTABLES = 0x37F - SYS_ISPUNCT = 0x038 - SYS_NLIST = 0x38C - SYS___IPDBCS = 0x38D - SYS___IPDSPX = 0x38E - SYS___IPMSGC = 0x38F - SYS___STHOSTENT = 0x38B - SYS___STSERVENT = 0x38A - SYS_ISSPACE = 0x039 - SYS_COS = 0x040 - SYS_T_ALLOC = 0x40A - SYS_T_BIND = 0x40B - SYS_T_CLOSE = 0x40C - SYS_T_CONNECT = 0x40D - SYS_T_ERROR = 0x40E - SYS_T_FREE = 0x40F - SYS_TAN = 0x041 - SYS_T_RCVREL = 0x41A - SYS_T_RCVUDATA = 0x41B - SYS_T_RCVUDERR = 0x41C - SYS_T_SND = 0x41D - SYS_T_SNDDIS = 0x41E - SYS_T_SNDREL = 0x41F - SYS_GETPMSG = 0x42A - SYS_ISASTREAM = 0x42B - SYS_PUTMSG = 0x42C - SYS_PUTPMSG = 0x42D - SYS_SINH = 0x042 - SYS___ISPOSIXON = 0x42E - SYS___OPENMVSREL = 0x42F - SYS_ACOS = 0x043 - SYS_ATAN = 0x044 - SYS_ATAN2 = 0x045 - SYS_FTELL = 0x046 - SYS_FGETPOS = 0x047 - SYS_SOCK_DEBUG = 0x47A - SYS_SOCK_DO_TESTSTOR = 0x47D - SYS_TAKESOCKET = 0x47E - SYS___SERVER_INIT = 0x47F - SYS_FSEEK = 0x048 - SYS___IPHOST = 0x48B - SYS___IPNODE = 0x48C - SYS___SERVER_CLASSIFY_CREATE = 0x48D - SYS___SERVER_CLASSIFY_DESTROY = 0x48E - SYS___SERVER_CLASSIFY_RESET = 0x48F - SYS___SMF_RECORD = 0x48A - SYS_FSETPOS = 0x049 - SYS___FNWSA = 0x49B - SYS___SPAWN2 = 0x49D - SYS___SPAWNP2 = 0x49E - SYS_ATOF = 0x050 - SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A - SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B - SYS_PTHREAD_RWLOCK_DESTROY = 0x50C - SYS_PTHREAD_RWLOCK_INIT = 0x50D - SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E - SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F - SYS_ATOI = 0x051 - SYS___FP_CLASS = 0x51D - SYS___FP_CLR_FLAG = 0x51A - SYS___FP_FINITE = 0x51E - SYS___FP_ISNAN = 0x51F - SYS___FP_RAISE_XCP = 0x51C - SYS___FP_READ_FLAG = 0x51B - SYS_RAND = 0x052 - SYS_SIGTIMEDWAIT = 0x52D - SYS_SIGWAITINFO = 0x52E - SYS___CHKBFP = 0x52F - SYS___FPC_RS = 0x52C - SYS___FPC_RW = 0x52A - SYS___FPC_SM = 0x52B - SYS_STRTOD = 0x053 - SYS_STRTOL = 0x054 - SYS_STRTOUL = 0x055 - SYS_MALLOC = 0x056 - SYS_SRAND = 0x057 - SYS_CALLOC = 0x058 - SYS_FREE = 0x059 - SYS___OSENV = 0x59F - SYS___W_PIOCTL = 0x59E - SYS_LONGJMP = 0x060 - SYS___FLOORF_B = 0x60A - SYS___FLOORL_B = 0x60B - SYS___FREXPF_B = 0x60C - SYS___FREXPL_B = 0x60D - SYS___LDEXPF_B = 0x60E - SYS___LDEXPL_B = 0x60F - SYS_SIGNAL = 0x061 - SYS___ATAN2F_B = 0x61A - SYS___ATAN2L_B = 0x61B - SYS___COSHF_B = 0x61C - SYS___COSHL_B = 0x61D - SYS___EXPF_B = 0x61E - SYS___EXPL_B = 0x61F - SYS_TMPNAM = 0x062 - SYS___ABSF_B = 0x62A - SYS___ABSL_B = 0x62C - SYS___ABS_B = 0x62B - SYS___FMODF_B = 0x62D - SYS___FMODL_B = 0x62E - SYS___MODFF_B = 0x62F - SYS_ATANL = 0x63A - SYS_CEILF = 0x63B - SYS_CEILL = 0x63C - SYS_COSF = 0x63D - SYS_COSHF = 0x63F - SYS_COSL = 0x63E - SYS_REMOVE = 0x063 - SYS_POWL = 0x64A - SYS_RENAME = 0x064 - SYS_SINF = 0x64B - SYS_SINHF = 0x64F - SYS_SINL = 0x64C - SYS_SQRTF = 0x64D - SYS_SQRTL = 0x64E - SYS_BTOWC = 0x65F - SYS_FREXPL = 0x65A - SYS_LDEXPF = 0x65B - SYS_LDEXPL = 0x65C - SYS_MODFF = 0x65D - SYS_MODFL = 0x65E - SYS_TMPFILE = 0x065 - SYS_FREOPEN = 0x066 - SYS___CHARMAP_INIT_A = 0x66E - SYS___GETHOSTBYADDR_R_A = 0x66C - SYS___GETHOSTBYNAME_A = 0x66A - SYS___GETHOSTBYNAME_R_A = 0x66D - SYS___MBLEN_A = 0x66F - SYS___RES_INIT_A = 0x66B - SYS_FCLOSE = 0x067 - SYS___GETGRGID_R_A = 0x67D - SYS___WCSTOMBS_A = 0x67A - SYS___WCSTOMBS_STD_A = 0x67B - SYS___WCSWIDTH_A = 0x67C - SYS___WCSWIDTH_ASIA = 0x67F - SYS___WCSWIDTH_STD_A = 0x67E - SYS_FFLUSH = 0x068 - SYS___GETLOGIN_R_A = 0x68E - SYS___GETPWNAM_R_A = 0x68C - SYS___GETPWUID_R_A = 0x68D - SYS___TTYNAME_R_A = 0x68F - SYS___WCWIDTH_ASIA = 0x68B - SYS___WCWIDTH_STD_A = 0x68A - SYS_FOPEN = 0x069 - SYS___REGEXEC_A = 0x69A - SYS___REGEXEC_STD_A = 0x69B - SYS___REGFREE_A = 0x69C - SYS___REGFREE_STD_A = 0x69D - SYS___STRCOLL_A = 0x69E - SYS___STRCOLL_C_A = 0x69F - SYS_SCANF = 0x070 - SYS___A64L_A = 0x70C - SYS___ECVT_A = 0x70D - SYS___FCVT_A = 0x70E - SYS___GCVT_A = 0x70F - SYS___STRTOUL_A = 0x70A - SYS_____AE_CORRESTBL_QUERY_A = 0x70B - SYS_SPRINTF = 0x071 - SYS___ACCESS_A = 0x71F - SYS___CATOPEN_A = 0x71E - SYS___GETOPT_A = 0x71D - SYS___REALPATH_A = 0x71A - SYS___SETENV_A = 0x71B - SYS___SYSTEM_A = 0x71C - SYS_FGETC = 0x072 - SYS___GAI_STRERROR_A = 0x72F - SYS___RMDIR_A = 0x72A - SYS___STATVFS_A = 0x72B - SYS___SYMLINK_A = 0x72C - SYS___TRUNCATE_A = 0x72D - SYS___UNLINK_A = 0x72E - SYS_VFPRINTF = 0x073 - SYS___ISSPACE_A = 0x73A - SYS___ISUPPER_A = 0x73B - SYS___ISWALNUM_A = 0x73F - SYS___ISXDIGIT_A = 0x73C - SYS___TOLOWER_A = 0x73D - SYS___TOUPPER_A = 0x73E - SYS_VPRINTF = 0x074 - SYS___CONFSTR_A = 0x74B - SYS___FDOPEN_A = 0x74E - SYS___FLDATA_A = 0x74F - SYS___FTOK_A = 0x74C - SYS___ISWXDIGIT_A = 0x74A - SYS___MKTEMP_A = 0x74D - SYS_VSPRINTF = 0x075 - SYS___GETGRGID_A = 0x75A - SYS___GETGRNAM_A = 0x75B - SYS___GETGROUPSBYNAME_A = 0x75C - SYS___GETHOSTENT_A = 0x75D - SYS___GETHOSTNAME_A = 0x75E - SYS___GETLOGIN_A = 0x75F - SYS_GETC = 0x076 - SYS___CREATEWORKUNIT_A = 0x76A - SYS___CTERMID_A = 0x76B - SYS___FMTMSG_A = 0x76C - SYS___INITGROUPS_A = 0x76D - SYS___MSGRCV_A = 0x76F - SYS_____LOGIN_A = 0x76E - SYS_FGETS = 0x077 - SYS___STRCASECMP_A = 0x77B - SYS___STRNCASECMP_A = 0x77C - SYS___TTYNAME_A = 0x77D - SYS___UNAME_A = 0x77E - SYS___UTIMES_A = 0x77F - SYS_____SERVER_PWU_A = 0x77A - SYS_FPUTC = 0x078 - SYS___CREAT_O_A = 0x78E - SYS___ENVNA = 0x78F - SYS___FREAD_A = 0x78A - SYS___FWRITE_A = 0x78B - SYS___ISASCII = 0x78D - SYS___OPEN_O_A = 0x78C - SYS_FPUTS = 0x079 - SYS___ASCTIME_A = 0x79C - SYS___CTIME_A = 0x79D - SYS___GETDATE_A = 0x79E - SYS___GETSERVBYPORT_A = 0x79A - SYS___GETSERVENT_A = 0x79B - SYS___TZSET_A = 0x79F - SYS_ACL_FROM_TEXT = 0x80C - SYS_ACL_SET_FD = 0x80A - SYS_ACL_SET_FILE = 0x80B - SYS_ACL_SORT = 0x80E - SYS_ACL_TO_TEXT = 0x80D - SYS_UNGETC = 0x080 - SYS___SHUTDOWN_REGISTRATION = 0x80F - SYS_FREAD = 0x081 - SYS_FREEADDRINFO = 0x81A - SYS_GAI_STRERROR = 0x81B - SYS_REXEC_AF = 0x81C - SYS___DYNALLOC_A = 0x81F - SYS___POE = 0x81D - SYS_WCSTOMBS = 0x082 - SYS___INET_ADDR_A = 0x82F - SYS___NLIST_A = 0x82A - SYS_____TCGETCP_A = 0x82B - SYS_____TCSETCP_A = 0x82C - SYS_____W_PIOCTL_A = 0x82E - SYS_MBTOWC = 0x083 - SYS___CABEND = 0x83D - SYS___LE_CIB_GET = 0x83E - SYS___RECVMSG_A = 0x83B - SYS___SENDMSG_A = 0x83A - SYS___SET_LAA_FOR_JIT = 0x83F - SYS_____LCHATTR_A = 0x83C - SYS_WCTOMB = 0x084 - SYS___CBRTL_B = 0x84A - SYS___COPYSIGNF_B = 0x84B - SYS___COPYSIGNL_B = 0x84C - SYS___COTANF_B = 0x84D - SYS___COTANL_B = 0x84F - SYS___COTAN_B = 0x84E - SYS_MBSTOWCS = 0x085 - SYS___LOG1PL_B = 0x85A - SYS___LOG2F_B = 0x85B - SYS___LOG2L_B = 0x85D - SYS___LOG2_B = 0x85C - SYS___REMAINDERF_B = 0x85E - SYS___REMAINDERL_B = 0x85F - SYS_ACOSHF = 0x86E - SYS_ACOSHL = 0x86F - SYS_WCSCPY = 0x086 - SYS___ERFCF_B = 0x86D - SYS___ERFF_B = 0x86C - SYS___LROUNDF_B = 0x86A - SYS___LROUND_B = 0x86B - SYS_COTANL = 0x87A - SYS_EXP2F = 0x87B - SYS_EXP2L = 0x87C - SYS_EXPM1F = 0x87D - SYS_EXPM1L = 0x87E - SYS_FDIMF = 0x87F - SYS_WCSCAT = 0x087 - SYS___COTANL = 0x87A - SYS_REMAINDERF = 0x88A - SYS_REMAINDERL = 0x88B - SYS_REMAINDF = 0x88A - SYS_REMAINDL = 0x88B - SYS_REMQUO = 0x88D - SYS_REMQUOF = 0x88C - SYS_REMQUOL = 0x88E - SYS_TGAMMAF = 0x88F - SYS_WCSCHR = 0x088 - SYS_ERFCF = 0x89B - SYS_ERFCL = 0x89C - SYS_ERFL = 0x89A - SYS_EXP2 = 0x89E - SYS_WCSCMP = 0x089 - SYS___EXP2_B = 0x89D - SYS___FAR_JUMP = 0x89F - SYS_ABS = 0x090 - SYS___ERFCL_H = 0x90A - SYS___EXPF_H = 0x90C - SYS___EXPL_H = 0x90D - SYS___EXPM1_H = 0x90E - SYS___EXP_H = 0x90B - SYS___FDIM_H = 0x90F - SYS_DIV = 0x091 - SYS___LOG2F_H = 0x91F - SYS___LOG2_H = 0x91E - SYS___LOGB_H = 0x91D - SYS___LOGF_H = 0x91B - SYS___LOGL_H = 0x91C - SYS___LOG_H = 0x91A - SYS_LABS = 0x092 - SYS___POWL_H = 0x92A - SYS___REMAINDER_H = 0x92B - SYS___RINT_H = 0x92C - SYS___SCALB_H = 0x92D - SYS___SINF_H = 0x92F - SYS___SIN_H = 0x92E - SYS_STRNCPY = 0x093 - SYS___TANHF_H = 0x93B - SYS___TANHL_H = 0x93C - SYS___TANH_H = 0x93A - SYS___TGAMMAF_H = 0x93E - SYS___TGAMMA_H = 0x93D - SYS___TRUNC_H = 0x93F - SYS_MEMCPY = 0x094 - SYS_VFWSCANF = 0x94A - SYS_VSWSCANF = 0x94E - SYS_VWSCANF = 0x94C - SYS_INET6_RTH_ADD = 0x95D - SYS_INET6_RTH_INIT = 0x95C - SYS_INET6_RTH_REVERSE = 0x95E - SYS_INET6_RTH_SEGMENTS = 0x95F - SYS_INET6_RTH_SPACE = 0x95B - SYS_MEMMOVE = 0x095 - SYS_WCSTOLD = 0x95A - SYS_STRCPY = 0x096 - SYS_STRCMP = 0x097 - SYS_CABS = 0x98E - SYS_STRCAT = 0x098 - SYS___CABS_B = 0x98F - SYS___POW_II = 0x98A - SYS___POW_II_B = 0x98B - SYS___POW_II_H = 0x98C - SYS_CACOSF = 0x99A - SYS_CACOSL = 0x99D - SYS_STRNCAT = 0x099 - SYS___CACOSF_B = 0x99B - SYS___CACOSF_H = 0x99C - SYS___CACOSL_B = 0x99E - SYS___CACOSL_H = 0x99F - SYS_ISWALPHA = 0x100 - SYS_ISWBLANK = 0x101 - SYS___ISWBLK = 0x101 - SYS_ISWCNTRL = 0x102 - SYS_ISWDIGIT = 0x103 - SYS_ISWGRAPH = 0x104 - SYS_ISWLOWER = 0x105 - SYS_ISWPRINT = 0x106 - SYS_ISWPUNCT = 0x107 - SYS_ISWSPACE = 0x108 - SYS_ISWUPPER = 0x109 - SYS_WCTOB = 0x110 - SYS_MBRLEN = 0x111 - SYS_MBRTOWC = 0x112 - SYS_MBSRTOWC = 0x113 - SYS_MBSRTOWCS = 0x113 - SYS_WCRTOMB = 0x114 - SYS_WCSRTOMB = 0x115 - SYS_WCSRTOMBS = 0x115 - SYS___CSID = 0x116 - SYS___WCSID = 0x117 - SYS_STRPTIME = 0x118 - SYS___STRPTM = 0x118 - SYS_STRFMON = 0x119 - SYS_WCSCOLL = 0x130 - SYS_WCSXFRM = 0x131 - SYS_WCSWIDTH = 0x132 - SYS_WCWIDTH = 0x133 - SYS_WCSFTIME = 0x134 - SYS_SWPRINTF = 0x135 - SYS_VSWPRINT = 0x136 - SYS_VSWPRINTF = 0x136 - SYS_SWSCANF = 0x137 - SYS_REGCOMP = 0x138 - SYS_REGEXEC = 0x139 - SYS_GETWC = 0x140 - SYS_GETWCHAR = 0x141 - SYS_PUTWC = 0x142 - SYS_PUTWCHAR = 0x143 - SYS_UNGETWC = 0x144 - SYS_ICONV_OPEN = 0x145 - SYS_ICONV = 0x146 - SYS_ICONV_CLOSE = 0x147 - SYS_COLLRANGE = 0x150 - SYS_CCLASS = 0x151 - SYS_COLLORDER = 0x152 - SYS___DEMANGLE = 0x154 - SYS_FDOPEN = 0x155 - SYS___ERRNO = 0x156 - SYS___ERRNO2 = 0x157 - SYS___TERROR = 0x158 - SYS_MAXCOLL = 0x169 - SYS_DLLLOAD = 0x170 - SYS__EXIT = 0x174 - SYS_ACCESS = 0x175 - SYS_ALARM = 0x176 - SYS_CFGETISPEED = 0x177 - SYS_CFGETOSPEED = 0x178 - SYS_CFSETISPEED = 0x179 - SYS_CREAT = 0x180 - SYS_CTERMID = 0x181 - SYS_DUP = 0x182 - SYS_DUP2 = 0x183 - SYS_EXECL = 0x184 - SYS_EXECLE = 0x185 - SYS_EXECLP = 0x186 - SYS_EXECV = 0x187 - SYS_EXECVE = 0x188 - SYS_EXECVP = 0x189 - SYS_FSTAT = 0x190 - SYS_FSYNC = 0x191 - SYS_FTRUNCATE = 0x192 - SYS_GETCWD = 0x193 - SYS_GETEGID = 0x194 - SYS_GETEUID = 0x195 - SYS_GETGID = 0x196 - SYS_GETGRGID = 0x197 - SYS_GETGRNAM = 0x198 - SYS_GETGROUPS = 0x199 - SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 - SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 - SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 - SYS_PTHREAD_MUTEX_INIT = 0x203 - SYS_PTHREAD_MUTEX_DESTROY = 0x204 - SYS_PTHREAD_MUTEX_LOCK = 0x205 - SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 - SYS_PTHREAD_MUTEX_UNLOCK = 0x207 - SYS_PTHREAD_ONCE = 0x209 - SYS_TW_OPEN = 0x210 - SYS_TW_FCNTL = 0x211 - SYS_PTHREAD_JOIN_D4_NP = 0x212 - SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 - SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 - SYS_EXTLINK_NP = 0x215 - SYS___PASSWD = 0x216 - SYS_SETGROUPS = 0x217 - SYS_INITGROUPS = 0x218 - SYS_WCSRCHR = 0x240 - SYS_SVC99 = 0x241 - SYS___SVC99 = 0x241 - SYS_WCSWCS = 0x242 - SYS_LOCALECO = 0x243 - SYS_LOCALECONV = 0x243 - SYS___LIBREL = 0x244 - SYS_RELEASE = 0x245 - SYS___RLSE = 0x245 - SYS_FLOCATE = 0x246 - SYS___FLOCT = 0x246 - SYS_FDELREC = 0x247 - SYS___FDLREC = 0x247 - SYS_FETCH = 0x248 - SYS___FETCH = 0x248 - SYS_QSORT = 0x249 - SYS___CLEANUPCATCH = 0x260 - SYS___CATCHMATCH = 0x261 - SYS___CLEAN2UPCATCH = 0x262 - SYS_GETPRIORITY = 0x270 - SYS_NICE = 0x271 - SYS_SETPRIORITY = 0x272 - SYS_GETITIMER = 0x273 - SYS_SETITIMER = 0x274 - SYS_MSGCTL = 0x275 - SYS_MSGGET = 0x276 - SYS_MSGRCV = 0x277 - SYS_MSGSND = 0x278 - SYS_MSGXRCV = 0x279 - SYS___MSGXR = 0x279 - SYS_SHMGET = 0x280 - SYS___GETIPC = 0x281 - SYS_SETGRENT = 0x282 - SYS_GETGRENT = 0x283 - SYS_ENDGRENT = 0x284 - SYS_SETPWENT = 0x285 - SYS_GETPWENT = 0x286 - SYS_ENDPWENT = 0x287 - SYS_BSD_SIGNAL = 0x288 - SYS_KILLPG = 0x289 - SYS_SIGSET = 0x290 - SYS_SIGSTACK = 0x291 - SYS_GETRLIMIT = 0x292 - SYS_SETRLIMIT = 0x293 - SYS_GETRUSAGE = 0x294 - SYS_MMAP = 0x295 - SYS_MPROTECT = 0x296 - SYS_MSYNC = 0x297 - SYS_MUNMAP = 0x298 - SYS_CONFSTR = 0x299 - SYS___NDMTRM = 0x300 - SYS_FTOK = 0x301 - SYS_BASENAME = 0x302 - SYS_DIRNAME = 0x303 - SYS_GETDTABLESIZE = 0x304 - SYS_MKSTEMP = 0x305 - SYS_MKTEMP = 0x306 - SYS_NFTW = 0x307 - SYS_GETWD = 0x308 - SYS_LOCKF = 0x309 - SYS_WORDEXP = 0x310 - SYS_WORDFREE = 0x311 - SYS_GETPGID = 0x312 - SYS_GETSID = 0x313 - SYS___UTMPXNAME = 0x314 - SYS_CUSERID = 0x315 - SYS_GETPASS = 0x316 - SYS_FNMATCH = 0x317 - SYS_FTW = 0x318 - SYS_GETW = 0x319 - SYS_ACOSH = 0x320 - SYS_ASINH = 0x321 - SYS_ATANH = 0x322 - SYS_CBRT = 0x323 - SYS_EXPM1 = 0x324 - SYS_ILOGB = 0x325 - SYS_LOGB = 0x326 - SYS_LOG1P = 0x327 - SYS_NEXTAFTER = 0x328 - SYS_RINT = 0x329 - SYS_SPAWN = 0x330 - SYS_SPAWNP = 0x331 - SYS_GETLOGIN_UU = 0x332 - SYS_ECVT = 0x333 - SYS_FCVT = 0x334 - SYS_GCVT = 0x335 - SYS_ACCEPT = 0x336 - SYS_BIND = 0x337 - SYS_CONNECT = 0x338 - SYS_ENDHOSTENT = 0x339 - SYS_GETHOSTENT = 0x340 - SYS_GETHOSTID = 0x341 - SYS_GETHOSTNAME = 0x342 - SYS_GETNETBYADDR = 0x343 - SYS_GETNETBYNAME = 0x344 - SYS_GETNETENT = 0x345 - SYS_GETPEERNAME = 0x346 - SYS_GETPROTOBYNAME = 0x347 - SYS_GETPROTOBYNUMBER = 0x348 - SYS_GETPROTOENT = 0x349 - SYS_INET_LNAOF = 0x350 - SYS_INET_MAKEADDR = 0x351 - SYS_INET_NETOF = 0x352 - SYS_INET_NETWORK = 0x353 - SYS_INET_NTOA = 0x354 - SYS_IOCTL = 0x355 - SYS_LISTEN = 0x356 - SYS_READV = 0x357 - SYS_RECV = 0x358 - SYS_RECVFROM = 0x359 - SYS_SETHOSTENT = 0x360 - SYS_SETNETENT = 0x361 - SYS_SETPEER = 0x362 - SYS_SETPROTOENT = 0x363 - SYS_SETSERVENT = 0x364 - SYS_SETSOCKOPT = 0x365 - SYS_SHUTDOWN = 0x366 - SYS_SOCKET = 0x367 - SYS_SOCKETPAIR = 0x368 - SYS_WRITEV = 0x369 - SYS_ENDNETENT = 0x370 - SYS_CLOSELOG = 0x371 - SYS_OPENLOG = 0x372 - SYS_SETLOGMASK = 0x373 - SYS_SYSLOG = 0x374 - SYS_PTSNAME = 0x375 - SYS_SETREUID = 0x376 - SYS_SETREGID = 0x377 - SYS_REALPATH = 0x378 - SYS___SIGNGAM = 0x379 - SYS_POLL = 0x380 - SYS_REXEC = 0x381 - SYS___ISASCII2 = 0x382 - SYS___TOASCII2 = 0x383 - SYS_CHPRIORITY = 0x384 - SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 - SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 - SYS_PTHREAD_SET_LIMIT_NP = 0x387 - SYS___STNETENT = 0x388 - SYS___STPROTOENT = 0x389 - SYS___SELECT1 = 0x390 - SYS_PTHREAD_SECURITY_NP = 0x391 - SYS___CHECK_RESOURCE_AUTH_NP = 0x392 - SYS___CONVERT_ID_NP = 0x393 - SYS___OPENVMREL = 0x394 - SYS_WMEMCHR = 0x395 - SYS_WMEMCMP = 0x396 - SYS_WMEMCPY = 0x397 - SYS_WMEMMOVE = 0x398 - SYS_WMEMSET = 0x399 - SYS___FPUTWC = 0x400 - SYS___PUTWC = 0x401 - SYS___PWCHAR = 0x402 - SYS___WCSFTM = 0x403 - SYS___WCSTOK = 0x404 - SYS___WCWDTH = 0x405 - SYS_T_ACCEPT = 0x409 - SYS_T_GETINFO = 0x410 - SYS_T_GETPROTADDR = 0x411 - SYS_T_GETSTATE = 0x412 - SYS_T_LISTEN = 0x413 - SYS_T_LOOK = 0x414 - SYS_T_OPEN = 0x415 - SYS_T_OPTMGMT = 0x416 - SYS_T_RCV = 0x417 - SYS_T_RCVCONNECT = 0x418 - SYS_T_RCVDIS = 0x419 - SYS_T_SNDUDATA = 0x420 - SYS_T_STRERROR = 0x421 - SYS_T_SYNC = 0x422 - SYS_T_UNBIND = 0x423 - SYS___T_ERRNO = 0x424 - SYS___RECVMSG2 = 0x425 - SYS___SENDMSG2 = 0x426 - SYS_FATTACH = 0x427 - SYS_FDETACH = 0x428 - SYS_GETMSG = 0x429 - SYS_GETCONTEXT = 0x430 - SYS_SETCONTEXT = 0x431 - SYS_MAKECONTEXT = 0x432 - SYS_SWAPCONTEXT = 0x433 - SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 - SYS_GETCLIENTID = 0x470 - SYS___GETCLIENTID = 0x471 - SYS_GETSTABLESIZE = 0x472 - SYS_GETIBMOPT = 0x473 - SYS_GETIBMSOCKOPT = 0x474 - SYS_GIVESOCKET = 0x475 - SYS_IBMSFLUSH = 0x476 - SYS_MAXDESC = 0x477 - SYS_SETIBMOPT = 0x478 - SYS_SETIBMSOCKOPT = 0x479 - SYS___SERVER_PWU = 0x480 - SYS_PTHREAD_TAG_NP = 0x481 - SYS___CONSOLE = 0x482 - SYS___WSINIT = 0x483 - SYS___IPTCPN = 0x489 - SYS___SERVER_CLASSIFY = 0x490 - SYS___HEAPRPT = 0x496 - SYS___ISBFP = 0x500 - SYS___FP_CAST = 0x501 - SYS___CERTIFICATE = 0x502 - SYS_SEND_FILE = 0x503 - SYS_AIO_CANCEL = 0x504 - SYS_AIO_ERROR = 0x505 - SYS_AIO_READ = 0x506 - SYS_AIO_RETURN = 0x507 - SYS_AIO_SUSPEND = 0x508 - SYS_AIO_WRITE = 0x509 - SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 - SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 - SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 - SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 - SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 - SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 - SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 - SYS___CTTBL = 0x517 - SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 - SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 - SYS___FP_UNORDERED = 0x520 - SYS___FP_READ_RND = 0x521 - SYS___FP_READ_RND_B = 0x522 - SYS___FP_SWAP_RND = 0x523 - SYS___FP_SWAP_RND_B = 0x524 - SYS___FP_LEVEL = 0x525 - SYS___FP_BTOH = 0x526 - SYS___FP_HTOB = 0x527 - SYS___FPC_RD = 0x528 - SYS___FPC_WR = 0x529 - SYS_PTHREAD_SETCANCELTYPE = 0x600 - SYS_PTHREAD_TESTCANCEL = 0x601 - SYS___ATANF_B = 0x602 - SYS___ATANL_B = 0x603 - SYS___CEILF_B = 0x604 - SYS___CEILL_B = 0x605 - SYS___COSF_B = 0x606 - SYS___COSL_B = 0x607 - SYS___FABSF_B = 0x608 - SYS___FABSL_B = 0x609 - SYS___SINF_B = 0x610 - SYS___SINL_B = 0x611 - SYS___TANF_B = 0x612 - SYS___TANL_B = 0x613 - SYS___TANHF_B = 0x614 - SYS___TANHL_B = 0x615 - SYS___ACOSF_B = 0x616 - SYS___ACOSL_B = 0x617 - SYS___ASINF_B = 0x618 - SYS___ASINL_B = 0x619 - SYS___LOGF_B = 0x620 - SYS___LOGL_B = 0x621 - SYS___LOG10F_B = 0x622 - SYS___LOG10L_B = 0x623 - SYS___POWF_B = 0x624 - SYS___POWL_B = 0x625 - SYS___SINHF_B = 0x626 - SYS___SINHL_B = 0x627 - SYS___SQRTF_B = 0x628 - SYS___SQRTL_B = 0x629 - SYS___MODFL_B = 0x630 - SYS_ABSF = 0x631 - SYS_ABSL = 0x632 - SYS_ACOSF = 0x633 - SYS_ACOSL = 0x634 - SYS_ASINF = 0x635 - SYS_ASINL = 0x636 - SYS_ATAN2F = 0x637 - SYS_ATAN2L = 0x638 - SYS_ATANF = 0x639 - SYS_COSHL = 0x640 - SYS_EXPF = 0x641 - SYS_EXPL = 0x642 - SYS_TANHF = 0x643 - SYS_TANHL = 0x644 - SYS_LOG10F = 0x645 - SYS_LOG10L = 0x646 - SYS_LOGF = 0x647 - SYS_LOGL = 0x648 - SYS_POWF = 0x649 - SYS_SINHL = 0x650 - SYS_TANF = 0x651 - SYS_TANL = 0x652 - SYS_FABSF = 0x653 - SYS_FABSL = 0x654 - SYS_FLOORF = 0x655 - SYS_FLOORL = 0x656 - SYS_FMODF = 0x657 - SYS_FMODL = 0x658 - SYS_FREXPF = 0x659 - SYS___CHATTR = 0x660 - SYS___FCHATTR = 0x661 - SYS___TOCCSID = 0x662 - SYS___CSNAMETYPE = 0x663 - SYS___TOCSNAME = 0x664 - SYS___CCSIDTYPE = 0x665 - SYS___AE_CORRESTBL_QUERY = 0x666 - SYS___AE_AUTOCONVERT_STATE = 0x667 - SYS_DN_FIND = 0x668 - SYS___GETHOSTBYADDR_A = 0x669 - SYS___MBLEN_SB_A = 0x670 - SYS___MBLEN_STD_A = 0x671 - SYS___MBLEN_UTF = 0x672 - SYS___MBSTOWCS_A = 0x673 - SYS___MBSTOWCS_STD_A = 0x674 - SYS___MBTOWC_A = 0x675 - SYS___MBTOWC_ISO1 = 0x676 - SYS___MBTOWC_SBCS = 0x677 - SYS___MBTOWC_MBCS = 0x678 - SYS___MBTOWC_UTF = 0x679 - SYS___CSID_A = 0x680 - SYS___CSID_STD_A = 0x681 - SYS___WCSID_A = 0x682 - SYS___WCSID_STD_A = 0x683 - SYS___WCTOMB_A = 0x684 - SYS___WCTOMB_ISO1 = 0x685 - SYS___WCTOMB_STD_A = 0x686 - SYS___WCTOMB_UTF = 0x687 - SYS___WCWIDTH_A = 0x688 - SYS___GETGRNAM_R_A = 0x689 - SYS___READDIR_R_A = 0x690 - SYS___E2A_S = 0x691 - SYS___FNMATCH_A = 0x692 - SYS___FNMATCH_C_A = 0x693 - SYS___EXECL_A = 0x694 - SYS___FNMATCH_STD_A = 0x695 - SYS___REGCOMP_A = 0x696 - SYS___REGCOMP_STD_A = 0x697 - SYS___REGERROR_A = 0x698 - SYS___REGERROR_STD_A = 0x699 - SYS___SWPRINTF_A = 0x700 - SYS___FSCANF_A = 0x701 - SYS___SCANF_A = 0x702 - SYS___SSCANF_A = 0x703 - SYS___SWSCANF_A = 0x704 - SYS___ATOF_A = 0x705 - SYS___ATOI_A = 0x706 - SYS___ATOL_A = 0x707 - SYS___STRTOD_A = 0x708 - SYS___STRTOL_A = 0x709 - SYS___L64A_A = 0x710 - SYS___STRERROR_A = 0x711 - SYS___PERROR_A = 0x712 - SYS___FETCH_A = 0x713 - SYS___GETENV_A = 0x714 - SYS___MKSTEMP_A = 0x717 - SYS___PTSNAME_A = 0x718 - SYS___PUTENV_A = 0x719 - SYS___CHDIR_A = 0x720 - SYS___CHOWN_A = 0x721 - SYS___CHROOT_A = 0x722 - SYS___GETCWD_A = 0x723 - SYS___GETWD_A = 0x724 - SYS___LCHOWN_A = 0x725 - SYS___LINK_A = 0x726 - SYS___PATHCONF_A = 0x727 - SYS___IF_NAMEINDEX_A = 0x728 - SYS___READLINK_A = 0x729 - SYS___EXTLINK_NP_A = 0x730 - SYS___ISALNUM_A = 0x731 - SYS___ISALPHA_A = 0x732 - SYS___A2E_S = 0x733 - SYS___ISCNTRL_A = 0x734 - SYS___ISDIGIT_A = 0x735 - SYS___ISGRAPH_A = 0x736 - SYS___ISLOWER_A = 0x737 - SYS___ISPRINT_A = 0x738 - SYS___ISPUNCT_A = 0x739 - SYS___ISWALPHA_A = 0x740 - SYS___A2E_L = 0x741 - SYS___ISWCNTRL_A = 0x742 - SYS___ISWDIGIT_A = 0x743 - SYS___ISWGRAPH_A = 0x744 - SYS___ISWLOWER_A = 0x745 - SYS___ISWPRINT_A = 0x746 - SYS___ISWPUNCT_A = 0x747 - SYS___ISWSPACE_A = 0x748 - SYS___ISWUPPER_A = 0x749 - SYS___REMOVE_A = 0x750 - SYS___RENAME_A = 0x751 - SYS___TMPNAM_A = 0x752 - SYS___FOPEN_A = 0x753 - SYS___FREOPEN_A = 0x754 - SYS___CUSERID_A = 0x755 - SYS___POPEN_A = 0x756 - SYS___TEMPNAM_A = 0x757 - SYS___FTW_A = 0x758 - SYS___GETGRENT_A = 0x759 - SYS___INET_NTOP_A = 0x760 - SYS___GETPASS_A = 0x761 - SYS___GETPWENT_A = 0x762 - SYS___GETPWNAM_A = 0x763 - SYS___GETPWUID_A = 0x764 - SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 - SYS___CHECKSCHENV_A = 0x766 - SYS___CONNECTSERVER_A = 0x767 - SYS___CONNECTWORKMGR_A = 0x768 - SYS_____CONSOLE_A = 0x769 - SYS___MSGSND_A = 0x770 - SYS___MSGXRCV_A = 0x771 - SYS___NFTW_A = 0x772 - SYS_____PASSWD_A = 0x773 - SYS___PTHREAD_SECURITY_NP_A = 0x774 - SYS___QUERYMETRICS_A = 0x775 - SYS___QUERYSCHENV = 0x776 - SYS___READV_A = 0x777 - SYS_____SERVER_CLASSIFY_A = 0x778 - SYS_____SERVER_INIT_A = 0x779 - SYS___W_GETPSENT_A = 0x780 - SYS___WRITEV_A = 0x781 - SYS___W_STATFS_A = 0x782 - SYS___W_STATVFS_A = 0x783 - SYS___FPUTC_A = 0x784 - SYS___PUTCHAR_A = 0x785 - SYS___PUTS_A = 0x786 - SYS___FGETS_A = 0x787 - SYS___GETS_A = 0x788 - SYS___FPUTS_A = 0x789 - SYS___PUTC_A = 0x790 - SYS___AE_THREAD_SETMODE = 0x791 - SYS___AE_THREAD_SWAPMODE = 0x792 - SYS___GETNETBYADDR_A = 0x793 - SYS___GETNETBYNAME_A = 0x794 - SYS___GETNETENT_A = 0x795 - SYS___GETPROTOBYNAME_A = 0x796 - SYS___GETPROTOBYNUMBER_A = 0x797 - SYS___GETPROTOENT_A = 0x798 - SYS___GETSERVBYNAME_A = 0x799 - SYS_ACL_FIRST_ENTRY = 0x800 - SYS_ACL_GET_ENTRY = 0x801 - SYS_ACL_VALID = 0x802 - SYS_ACL_CREATE_ENTRY = 0x803 - SYS_ACL_DELETE_ENTRY = 0x804 - SYS_ACL_UPDATE_ENTRY = 0x805 - SYS_ACL_DELETE_FD = 0x806 - SYS_ACL_DELETE_FILE = 0x807 - SYS_ACL_GET_FD = 0x808 - SYS_ACL_GET_FILE = 0x809 - SYS___ERFL_B = 0x810 - SYS___ERFCL_B = 0x811 - SYS___LGAMMAL_B = 0x812 - SYS___SETHOOKEVENTS = 0x813 - SYS_IF_NAMETOINDEX = 0x814 - SYS_IF_INDEXTONAME = 0x815 - SYS_IF_NAMEINDEX = 0x816 - SYS_IF_FREENAMEINDEX = 0x817 - SYS_GETADDRINFO = 0x818 - SYS_GETNAMEINFO = 0x819 - SYS___DYNFREE_A = 0x820 - SYS___RES_QUERY_A = 0x821 - SYS___RES_SEARCH_A = 0x822 - SYS___RES_QUERYDOMAIN_A = 0x823 - SYS___RES_MKQUERY_A = 0x824 - SYS___RES_SEND_A = 0x825 - SYS___DN_EXPAND_A = 0x826 - SYS___DN_SKIPNAME_A = 0x827 - SYS___DN_COMP_A = 0x828 - SYS___DN_FIND_A = 0x829 - SYS___INET_NTOA_A = 0x830 - SYS___INET_NETWORK_A = 0x831 - SYS___ACCEPT_A = 0x832 - SYS___ACCEPT_AND_RECV_A = 0x833 - SYS___BIND_A = 0x834 - SYS___CONNECT_A = 0x835 - SYS___GETPEERNAME_A = 0x836 - SYS___GETSOCKNAME_A = 0x837 - SYS___RECVFROM_A = 0x838 - SYS___SENDTO_A = 0x839 - SYS___LCHATTR = 0x840 - SYS___WRITEDOWN = 0x841 - SYS_PTHREAD_MUTEX_INIT2 = 0x842 - SYS___ACOSHF_B = 0x843 - SYS___ACOSHL_B = 0x844 - SYS___ASINHF_B = 0x845 - SYS___ASINHL_B = 0x846 - SYS___ATANHF_B = 0x847 - SYS___ATANHL_B = 0x848 - SYS___CBRTF_B = 0x849 - SYS___EXP2F_B = 0x850 - SYS___EXP2L_B = 0x851 - SYS___EXPM1F_B = 0x852 - SYS___EXPM1L_B = 0x853 - SYS___FDIMF_B = 0x854 - SYS___FDIM_B = 0x855 - SYS___FDIML_B = 0x856 - SYS___HYPOTF_B = 0x857 - SYS___HYPOTL_B = 0x858 - SYS___LOG1PF_B = 0x859 - SYS___REMQUOF_B = 0x860 - SYS___REMQUO_B = 0x861 - SYS___REMQUOL_B = 0x862 - SYS___TGAMMAF_B = 0x863 - SYS___TGAMMA_B = 0x864 - SYS___TGAMMAL_B = 0x865 - SYS___TRUNCF_B = 0x866 - SYS___TRUNC_B = 0x867 - SYS___TRUNCL_B = 0x868 - SYS___LGAMMAF_B = 0x869 - SYS_ASINHF = 0x870 - SYS_ASINHL = 0x871 - SYS_ATANHF = 0x872 - SYS_ATANHL = 0x873 - SYS_CBRTF = 0x874 - SYS_CBRTL = 0x875 - SYS_COPYSIGNF = 0x876 - SYS_CPYSIGNF = 0x876 - SYS_COPYSIGNL = 0x877 - SYS_CPYSIGNL = 0x877 - SYS_COTANF = 0x878 - SYS___COTANF = 0x878 - SYS_COTAN = 0x879 - SYS___COTAN = 0x879 - SYS_FDIM = 0x881 - SYS_FDIML = 0x882 - SYS_HYPOTF = 0x883 - SYS_HYPOTL = 0x884 - SYS_LOG1PF = 0x885 - SYS_LOG1PL = 0x886 - SYS_LOG2F = 0x887 - SYS_LOG2 = 0x888 - SYS_LOG2L = 0x889 - SYS_TGAMMA = 0x890 - SYS_TGAMMAL = 0x891 - SYS_TRUNCF = 0x892 - SYS_TRUNC = 0x893 - SYS_TRUNCL = 0x894 - SYS_LGAMMAF = 0x895 - SYS_LGAMMAL = 0x896 - SYS_LROUNDF = 0x897 - SYS_LROUND = 0x898 - SYS_ERFF = 0x899 - SYS___COSHF_H = 0x900 - SYS___COSHL_H = 0x901 - SYS___COTAN_H = 0x902 - SYS___COTANF_H = 0x903 - SYS___COTANL_H = 0x904 - SYS___ERF_H = 0x905 - SYS___ERFF_H = 0x906 - SYS___ERFL_H = 0x907 - SYS___ERFC_H = 0x908 - SYS___ERFCF_H = 0x909 - SYS___FDIMF_H = 0x910 - SYS___FDIML_H = 0x911 - SYS___FMOD_H = 0x912 - SYS___FMODF_H = 0x913 - SYS___FMODL_H = 0x914 - SYS___GAMMA_H = 0x915 - SYS___HYPOT_H = 0x916 - SYS___ILOGB_H = 0x917 - SYS___LGAMMA_H = 0x918 - SYS___LGAMMAF_H = 0x919 - SYS___LOG2L_H = 0x920 - SYS___LOG1P_H = 0x921 - SYS___LOG10_H = 0x922 - SYS___LOG10F_H = 0x923 - SYS___LOG10L_H = 0x924 - SYS___LROUND_H = 0x925 - SYS___LROUNDF_H = 0x926 - SYS___NEXTAFTER_H = 0x927 - SYS___POW_H = 0x928 - SYS___POWF_H = 0x929 - SYS___SINL_H = 0x930 - SYS___SINH_H = 0x931 - SYS___SINHF_H = 0x932 - SYS___SINHL_H = 0x933 - SYS___SQRT_H = 0x934 - SYS___SQRTF_H = 0x935 - SYS___SQRTL_H = 0x936 - SYS___TAN_H = 0x937 - SYS___TANF_H = 0x938 - SYS___TANL_H = 0x939 - SYS___TRUNCF_H = 0x940 - SYS___TRUNCL_H = 0x941 - SYS___COSH_H = 0x942 - SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 - SYS_VFSCANF = 0x944 - SYS_VSCANF = 0x946 - SYS_VSSCANF = 0x948 - SYS_IMAXABS = 0x950 - SYS_IMAXDIV = 0x951 - SYS_STRTOIMAX = 0x952 - SYS_STRTOUMAX = 0x953 - SYS_WCSTOIMAX = 0x954 - SYS_WCSTOUMAX = 0x955 - SYS_ATOLL = 0x956 - SYS_STRTOF = 0x957 - SYS_STRTOLD = 0x958 - SYS_WCSTOF = 0x959 - SYS_INET6_RTH_GETADDR = 0x960 - SYS_INET6_OPT_INIT = 0x961 - SYS_INET6_OPT_APPEND = 0x962 - SYS_INET6_OPT_FINISH = 0x963 - SYS_INET6_OPT_SET_VAL = 0x964 - SYS_INET6_OPT_NEXT = 0x965 - SYS_INET6_OPT_FIND = 0x966 - SYS_INET6_OPT_GET_VAL = 0x967 - SYS___POW_I = 0x987 - SYS___POW_I_B = 0x988 - SYS___POW_I_H = 0x989 - SYS___CABS_H = 0x990 - SYS_CABSF = 0x991 - SYS___CABSF_B = 0x992 - SYS___CABSF_H = 0x993 - SYS_CABSL = 0x994 - SYS___CABSL_B = 0x995 - SYS___CABSL_H = 0x996 - SYS_CACOS = 0x997 - SYS___CACOS_B = 0x998 - SYS___CACOS_H = 0x999 + SYS_LOG = 0x17 // 23 + SYS_COSH = 0x18 // 24 + SYS_TANH = 0x19 // 25 + SYS_EXP = 0x1A // 26 + SYS_MODF = 0x1B // 27 + SYS_LOG10 = 0x1C // 28 + SYS_FREXP = 0x1D // 29 + SYS_LDEXP = 0x1E // 30 + SYS_CEIL = 0x1F // 31 + SYS_POW = 0x20 // 32 + SYS_SQRT = 0x21 // 33 + SYS_FLOOR = 0x22 // 34 + SYS_J1 = 0x23 // 35 + SYS_FABS = 0x24 // 36 + SYS_FMOD = 0x25 // 37 + SYS_J0 = 0x26 // 38 + SYS_YN = 0x27 // 39 + SYS_JN = 0x28 // 40 + SYS_Y0 = 0x29 // 41 + SYS_Y1 = 0x2A // 42 + SYS_HYPOT = 0x2B // 43 + SYS_ERF = 0x2C // 44 + SYS_ERFC = 0x2D // 45 + SYS_GAMMA = 0x2E // 46 + SYS_ISALPHA = 0x30 // 48 + SYS_ISALNUM = 0x31 // 49 + SYS_ISLOWER = 0x32 // 50 + SYS_ISCNTRL = 0x33 // 51 + SYS_ISDIGIT = 0x34 // 52 + SYS_ISGRAPH = 0x35 // 53 + SYS_ISUPPER = 0x36 // 54 + SYS_ISPRINT = 0x37 // 55 + SYS_ISPUNCT = 0x38 // 56 + SYS_ISSPACE = 0x39 // 57 + SYS_SETLOCAL = 0x3A // 58 + SYS_SETLOCALE = 0x3A // 58 + SYS_ISXDIGIT = 0x3B // 59 + SYS_TOLOWER = 0x3C // 60 + SYS_TOUPPER = 0x3D // 61 + SYS_ASIN = 0x3E // 62 + SYS_SIN = 0x3F // 63 + SYS_COS = 0x40 // 64 + SYS_TAN = 0x41 // 65 + SYS_SINH = 0x42 // 66 + SYS_ACOS = 0x43 // 67 + SYS_ATAN = 0x44 // 68 + SYS_ATAN2 = 0x45 // 69 + SYS_FTELL = 0x46 // 70 + SYS_FGETPOS = 0x47 // 71 + SYS_FSEEK = 0x48 // 72 + SYS_FSETPOS = 0x49 // 73 + SYS_FERROR = 0x4A // 74 + SYS_REWIND = 0x4B // 75 + SYS_CLEARERR = 0x4C // 76 + SYS_FEOF = 0x4D // 77 + SYS_ATOL = 0x4E // 78 + SYS_PERROR = 0x4F // 79 + SYS_ATOF = 0x50 // 80 + SYS_ATOI = 0x51 // 81 + SYS_RAND = 0x52 // 82 + SYS_STRTOD = 0x53 // 83 + SYS_STRTOL = 0x54 // 84 + SYS_STRTOUL = 0x55 // 85 + SYS_MALLOC = 0x56 // 86 + SYS_SRAND = 0x57 // 87 + SYS_CALLOC = 0x58 // 88 + SYS_FREE = 0x59 // 89 + SYS_EXIT = 0x5A // 90 + SYS_REALLOC = 0x5B // 91 + SYS_ABORT = 0x5C // 92 + SYS___ABORT = 0x5C // 92 + SYS_ATEXIT = 0x5D // 93 + SYS_RAISE = 0x5E // 94 + SYS_SETJMP = 0x5F // 95 + SYS_LONGJMP = 0x60 // 96 + SYS_SIGNAL = 0x61 // 97 + SYS_TMPNAM = 0x62 // 98 + SYS_REMOVE = 0x63 // 99 + SYS_RENAME = 0x64 // 100 + SYS_TMPFILE = 0x65 // 101 + SYS_FREOPEN = 0x66 // 102 + SYS_FCLOSE = 0x67 // 103 + SYS_FFLUSH = 0x68 // 104 + SYS_FOPEN = 0x69 // 105 + SYS_FSCANF = 0x6A // 106 + SYS_SETBUF = 0x6B // 107 + SYS_SETVBUF = 0x6C // 108 + SYS_FPRINTF = 0x6D // 109 + SYS_SSCANF = 0x6E // 110 + SYS_PRINTF = 0x6F // 111 + SYS_SCANF = 0x70 // 112 + SYS_SPRINTF = 0x71 // 113 + SYS_FGETC = 0x72 // 114 + SYS_VFPRINTF = 0x73 // 115 + SYS_VPRINTF = 0x74 // 116 + SYS_VSPRINTF = 0x75 // 117 + SYS_GETC = 0x76 // 118 + SYS_FGETS = 0x77 // 119 + SYS_FPUTC = 0x78 // 120 + SYS_FPUTS = 0x79 // 121 + SYS_PUTCHAR = 0x7A // 122 + SYS_GETCHAR = 0x7B // 123 + SYS_GETS = 0x7C // 124 + SYS_PUTC = 0x7D // 125 + SYS_FWRITE = 0x7E // 126 + SYS_PUTS = 0x7F // 127 + SYS_UNGETC = 0x80 // 128 + SYS_FREAD = 0x81 // 129 + SYS_WCSTOMBS = 0x82 // 130 + SYS_MBTOWC = 0x83 // 131 + SYS_WCTOMB = 0x84 // 132 + SYS_MBSTOWCS = 0x85 // 133 + SYS_WCSCPY = 0x86 // 134 + SYS_WCSCAT = 0x87 // 135 + SYS_WCSCHR = 0x88 // 136 + SYS_WCSCMP = 0x89 // 137 + SYS_WCSNCMP = 0x8A // 138 + SYS_WCSCSPN = 0x8B // 139 + SYS_WCSLEN = 0x8C // 140 + SYS_WCSNCAT = 0x8D // 141 + SYS_WCSSPN = 0x8E // 142 + SYS_WCSNCPY = 0x8F // 143 + SYS_ABS = 0x90 // 144 + SYS_DIV = 0x91 // 145 + SYS_LABS = 0x92 // 146 + SYS_STRNCPY = 0x93 // 147 + SYS_MEMCPY = 0x94 // 148 + SYS_MEMMOVE = 0x95 // 149 + SYS_STRCPY = 0x96 // 150 + SYS_STRCMP = 0x97 // 151 + SYS_STRCAT = 0x98 // 152 + SYS_STRNCAT = 0x99 // 153 + SYS_MEMCMP = 0x9A // 154 + SYS_MEMCHR = 0x9B // 155 + SYS_STRCOLL = 0x9C // 156 + SYS_STRNCMP = 0x9D // 157 + SYS_STRXFRM = 0x9E // 158 + SYS_STRRCHR = 0x9F // 159 + SYS_STRCHR = 0xA0 // 160 + SYS_STRCSPN = 0xA1 // 161 + SYS_STRPBRK = 0xA2 // 162 + SYS_MEMSET = 0xA3 // 163 + SYS_STRSPN = 0xA4 // 164 + SYS_STRSTR = 0xA5 // 165 + SYS_STRTOK = 0xA6 // 166 + SYS_DIFFTIME = 0xA7 // 167 + SYS_STRERROR = 0xA8 // 168 + SYS_STRLEN = 0xA9 // 169 + SYS_CLOCK = 0xAA // 170 + SYS_CTIME = 0xAB // 171 + SYS_MKTIME = 0xAC // 172 + SYS_TIME = 0xAD // 173 + SYS_ASCTIME = 0xAE // 174 + SYS_MBLEN = 0xAF // 175 + SYS_GMTIME = 0xB0 // 176 + SYS_LOCALTIM = 0xB1 // 177 + SYS_LOCALTIME = 0xB1 // 177 + SYS_STRFTIME = 0xB2 // 178 + SYS___GETCB = 0xB4 // 180 + SYS_FUPDATE = 0xB5 // 181 + SYS___FUPDT = 0xB5 // 181 + SYS_CLRMEMF = 0xBD // 189 + SYS___CLRMF = 0xBD // 189 + SYS_FETCHEP = 0xBF // 191 + SYS___FTCHEP = 0xBF // 191 + SYS_FLDATA = 0xC1 // 193 + SYS___FLDATA = 0xC1 // 193 + SYS_DYNFREE = 0xC2 // 194 + SYS___DYNFRE = 0xC2 // 194 + SYS_DYNALLOC = 0xC3 // 195 + SYS___DYNALL = 0xC3 // 195 + SYS___CDUMP = 0xC4 // 196 + SYS_CSNAP = 0xC5 // 197 + SYS___CSNAP = 0xC5 // 197 + SYS_CTRACE = 0xC6 // 198 + SYS___CTRACE = 0xC6 // 198 + SYS___CTEST = 0xC7 // 199 + SYS_SETENV = 0xC8 // 200 + SYS___SETENV = 0xC8 // 200 + SYS_CLEARENV = 0xC9 // 201 + SYS___CLRENV = 0xC9 // 201 + SYS___REGCOMP_STD = 0xEA // 234 + SYS_NL_LANGINFO = 0xFC // 252 + SYS_GETSYNTX = 0xFD // 253 + SYS_ISBLANK = 0xFE // 254 + SYS___ISBLNK = 0xFE // 254 + SYS_ISWALNUM = 0xFF // 255 + SYS_ISWALPHA = 0x100 // 256 + SYS_ISWBLANK = 0x101 // 257 + SYS___ISWBLK = 0x101 // 257 + SYS_ISWCNTRL = 0x102 // 258 + SYS_ISWDIGIT = 0x103 // 259 + SYS_ISWGRAPH = 0x104 // 260 + SYS_ISWLOWER = 0x105 // 261 + SYS_ISWPRINT = 0x106 // 262 + SYS_ISWPUNCT = 0x107 // 263 + SYS_ISWSPACE = 0x108 // 264 + SYS_ISWUPPER = 0x109 // 265 + SYS_ISWXDIGI = 0x10A // 266 + SYS_ISWXDIGIT = 0x10A // 266 + SYS_WCTYPE = 0x10B // 267 + SYS_ISWCTYPE = 0x10C // 268 + SYS_TOWLOWER = 0x10D // 269 + SYS_TOWUPPER = 0x10E // 270 + SYS_MBSINIT = 0x10F // 271 + SYS_WCTOB = 0x110 // 272 + SYS_MBRLEN = 0x111 // 273 + SYS_MBRTOWC = 0x112 // 274 + SYS_MBSRTOWC = 0x113 // 275 + SYS_MBSRTOWCS = 0x113 // 275 + SYS_WCRTOMB = 0x114 // 276 + SYS_WCSRTOMB = 0x115 // 277 + SYS_WCSRTOMBS = 0x115 // 277 + SYS___CSID = 0x116 // 278 + SYS___WCSID = 0x117 // 279 + SYS_STRPTIME = 0x118 // 280 + SYS___STRPTM = 0x118 // 280 + SYS_STRFMON = 0x119 // 281 + SYS___RPMTCH = 0x11A // 282 + SYS_WCSSTR = 0x11B // 283 + SYS_WCSTOK = 0x12C // 300 + SYS_WCSTOL = 0x12D // 301 + SYS_WCSTOD = 0x12E // 302 + SYS_WCSTOUL = 0x12F // 303 + SYS_WCSCOLL = 0x130 // 304 + SYS_WCSXFRM = 0x131 // 305 + SYS_WCSWIDTH = 0x132 // 306 + SYS_WCWIDTH = 0x133 // 307 + SYS_WCSFTIME = 0x134 // 308 + SYS_SWPRINTF = 0x135 // 309 + SYS_VSWPRINT = 0x136 // 310 + SYS_VSWPRINTF = 0x136 // 310 + SYS_SWSCANF = 0x137 // 311 + SYS_REGCOMP = 0x138 // 312 + SYS_REGEXEC = 0x139 // 313 + SYS_REGFREE = 0x13A // 314 + SYS_REGERROR = 0x13B // 315 + SYS_FGETWC = 0x13C // 316 + SYS_FGETWS = 0x13D // 317 + SYS_FPUTWC = 0x13E // 318 + SYS_FPUTWS = 0x13F // 319 + SYS_GETWC = 0x140 // 320 + SYS_GETWCHAR = 0x141 // 321 + SYS_PUTWC = 0x142 // 322 + SYS_PUTWCHAR = 0x143 // 323 + SYS_UNGETWC = 0x144 // 324 + SYS_ICONV_OPEN = 0x145 // 325 + SYS_ICONV = 0x146 // 326 + SYS_ICONV_CLOSE = 0x147 // 327 + SYS_ISMCCOLLEL = 0x14C // 332 + SYS_STRTOCOLL = 0x14D // 333 + SYS_COLLTOSTR = 0x14E // 334 + SYS_COLLEQUIV = 0x14F // 335 + SYS_COLLRANGE = 0x150 // 336 + SYS_CCLASS = 0x151 // 337 + SYS_COLLORDER = 0x152 // 338 + SYS___DEMANGLE = 0x154 // 340 + SYS_FDOPEN = 0x155 // 341 + SYS___ERRNO = 0x156 // 342 + SYS___ERRNO2 = 0x157 // 343 + SYS___TERROR = 0x158 // 344 + SYS_MAXCOLL = 0x169 // 361 + SYS_GETMCCOLL = 0x16A // 362 + SYS_GETWMCCOLL = 0x16B // 363 + SYS___ERR2AD = 0x16C // 364 + SYS_DLLQUERYFN = 0x16D // 365 + SYS_DLLQUERYVAR = 0x16E // 366 + SYS_DLLFREE = 0x16F // 367 + SYS_DLLLOAD = 0x170 // 368 + SYS__EXIT = 0x174 // 372 + SYS_ACCESS = 0x175 // 373 + SYS_ALARM = 0x176 // 374 + SYS_CFGETISPEED = 0x177 // 375 + SYS_CFGETOSPEED = 0x178 // 376 + SYS_CFSETISPEED = 0x179 // 377 + SYS_CFSETOSPEED = 0x17A // 378 + SYS_CHDIR = 0x17B // 379 + SYS_CHMOD = 0x17C // 380 + SYS_CHOWN = 0x17D // 381 + SYS_CLOSE = 0x17E // 382 + SYS_CLOSEDIR = 0x17F // 383 + SYS_CREAT = 0x180 // 384 + SYS_CTERMID = 0x181 // 385 + SYS_DUP = 0x182 // 386 + SYS_DUP2 = 0x183 // 387 + SYS_EXECL = 0x184 // 388 + SYS_EXECLE = 0x185 // 389 + SYS_EXECLP = 0x186 // 390 + SYS_EXECV = 0x187 // 391 + SYS_EXECVE = 0x188 // 392 + SYS_EXECVP = 0x189 // 393 + SYS_FCHMOD = 0x18A // 394 + SYS_FCHOWN = 0x18B // 395 + SYS_FCNTL = 0x18C // 396 + SYS_FILENO = 0x18D // 397 + SYS_FORK = 0x18E // 398 + SYS_FPATHCONF = 0x18F // 399 + SYS_FSTAT = 0x190 // 400 + SYS_FSYNC = 0x191 // 401 + SYS_FTRUNCATE = 0x192 // 402 + SYS_GETCWD = 0x193 // 403 + SYS_GETEGID = 0x194 // 404 + SYS_GETEUID = 0x195 // 405 + SYS_GETGID = 0x196 // 406 + SYS_GETGRGID = 0x197 // 407 + SYS_GETGRNAM = 0x198 // 408 + SYS_GETGROUPS = 0x199 // 409 + SYS_GETLOGIN = 0x19A // 410 + SYS_W_GETMNTENT = 0x19B // 411 + SYS_GETPGRP = 0x19C // 412 + SYS_GETPID = 0x19D // 413 + SYS_GETPPID = 0x19E // 414 + SYS_GETPWNAM = 0x19F // 415 + SYS_GETPWUID = 0x1A0 // 416 + SYS_GETUID = 0x1A1 // 417 + SYS_W_IOCTL = 0x1A2 // 418 + SYS_ISATTY = 0x1A3 // 419 + SYS_KILL = 0x1A4 // 420 + SYS_LINK = 0x1A5 // 421 + SYS_LSEEK = 0x1A6 // 422 + SYS_LSTAT = 0x1A7 // 423 + SYS_MKDIR = 0x1A8 // 424 + SYS_MKFIFO = 0x1A9 // 425 + SYS_MKNOD = 0x1AA // 426 + SYS_MOUNT = 0x1AB // 427 + SYS_OPEN = 0x1AC // 428 + SYS_OPENDIR = 0x1AD // 429 + SYS_PATHCONF = 0x1AE // 430 + SYS_PAUSE = 0x1AF // 431 + SYS_PIPE = 0x1B0 // 432 + SYS_W_GETPSENT = 0x1B1 // 433 + SYS_READ = 0x1B2 // 434 + SYS_READDIR = 0x1B3 // 435 + SYS_READLINK = 0x1B4 // 436 + SYS_REWINDDIR = 0x1B5 // 437 + SYS_RMDIR = 0x1B6 // 438 + SYS_SETEGID = 0x1B7 // 439 + SYS_SETEUID = 0x1B8 // 440 + SYS_SETGID = 0x1B9 // 441 + SYS_SETPGID = 0x1BA // 442 + SYS_SETSID = 0x1BB // 443 + SYS_SETUID = 0x1BC // 444 + SYS_SIGACTION = 0x1BD // 445 + SYS_SIGADDSET = 0x1BE // 446 + SYS_SIGDELSET = 0x1BF // 447 + SYS_SIGEMPTYSET = 0x1C0 // 448 + SYS_SIGFILLSET = 0x1C1 // 449 + SYS_SIGISMEMBER = 0x1C2 // 450 + SYS_SIGLONGJMP = 0x1C3 // 451 + SYS_SIGPENDING = 0x1C4 // 452 + SYS_SIGPROCMASK = 0x1C5 // 453 + SYS_SIGSETJMP = 0x1C6 // 454 + SYS_SIGSUSPEND = 0x1C7 // 455 + SYS_SLEEP = 0x1C8 // 456 + SYS_STAT = 0x1C9 // 457 + SYS_W_STATFS = 0x1CA // 458 + SYS_SYMLINK = 0x1CB // 459 + SYS_SYSCONF = 0x1CC // 460 + SYS_TCDRAIN = 0x1CD // 461 + SYS_TCFLOW = 0x1CE // 462 + SYS_TCFLUSH = 0x1CF // 463 + SYS_TCGETATTR = 0x1D0 // 464 + SYS_TCGETPGRP = 0x1D1 // 465 + SYS_TCSENDBREAK = 0x1D2 // 466 + SYS_TCSETATTR = 0x1D3 // 467 + SYS_TCSETPGRP = 0x1D4 // 468 + SYS_TIMES = 0x1D5 // 469 + SYS_TTYNAME = 0x1D6 // 470 + SYS_TZSET = 0x1D7 // 471 + SYS_UMASK = 0x1D8 // 472 + SYS_UMOUNT = 0x1D9 // 473 + SYS_UNAME = 0x1DA // 474 + SYS_UNLINK = 0x1DB // 475 + SYS_UTIME = 0x1DC // 476 + SYS_WAIT = 0x1DD // 477 + SYS_WAITPID = 0x1DE // 478 + SYS_WRITE = 0x1DF // 479 + SYS_CHAUDIT = 0x1E0 // 480 + SYS_FCHAUDIT = 0x1E1 // 481 + SYS_GETGROUPSBYNAME = 0x1E2 // 482 + SYS_SIGWAIT = 0x1E3 // 483 + SYS_PTHREAD_EXIT = 0x1E4 // 484 + SYS_PTHREAD_KILL = 0x1E5 // 485 + SYS_PTHREAD_ATTR_INIT = 0x1E6 // 486 + SYS_PTHREAD_ATTR_DESTROY = 0x1E7 // 487 + SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 // 488 + SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 // 489 + SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA // 490 + SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB // 491 + SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC // 492 + SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED // 493 + SYS_PTHREAD_CANCEL = 0x1EE // 494 + SYS_PTHREAD_CLEANUP_PUSH = 0x1EF // 495 + SYS_PTHREAD_CLEANUP_POP = 0x1F0 // 496 + SYS_PTHREAD_CONDATTR_INIT = 0x1F1 // 497 + SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 // 498 + SYS_PTHREAD_COND_INIT = 0x1F3 // 499 + SYS_PTHREAD_COND_DESTROY = 0x1F4 // 500 + SYS_PTHREAD_COND_SIGNAL = 0x1F5 // 501 + SYS_PTHREAD_COND_BROADCAST = 0x1F6 // 502 + SYS_PTHREAD_COND_WAIT = 0x1F7 // 503 + SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 // 504 + SYS_PTHREAD_CREATE = 0x1F9 // 505 + SYS_PTHREAD_DETACH = 0x1FA // 506 + SYS_PTHREAD_EQUAL = 0x1FB // 507 + SYS_PTHREAD_GETSPECIFIC = 0x1FC // 508 + SYS_PTHREAD_JOIN = 0x1FD // 509 + SYS_PTHREAD_KEY_CREATE = 0x1FE // 510 + SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF // 511 + SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 // 512 + SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 // 513 + SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 // 514 + SYS_PTHREAD_MUTEX_INIT = 0x203 // 515 + SYS_PTHREAD_MUTEX_DESTROY = 0x204 // 516 + SYS_PTHREAD_MUTEX_LOCK = 0x205 // 517 + SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 // 518 + SYS_PTHREAD_MUTEX_UNLOCK = 0x207 // 519 + SYS_PTHREAD_ONCE = 0x209 // 521 + SYS_PTHREAD_SELF = 0x20A // 522 + SYS_PTHREAD_SETINTR = 0x20B // 523 + SYS_PTHREAD_SETINTRTYPE = 0x20C // 524 + SYS_PTHREAD_SETSPECIFIC = 0x20D // 525 + SYS_PTHREAD_TESTINTR = 0x20E // 526 + SYS_PTHREAD_YIELD = 0x20F // 527 + SYS_TW_OPEN = 0x210 // 528 + SYS_TW_FCNTL = 0x211 // 529 + SYS_PTHREAD_JOIN_D4_NP = 0x212 // 530 + SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 // 531 + SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 // 532 + SYS_EXTLINK_NP = 0x215 // 533 + SYS___PASSWD = 0x216 // 534 + SYS_SETGROUPS = 0x217 // 535 + SYS_INITGROUPS = 0x218 // 536 + SYS_WCSPBRK = 0x23F // 575 + SYS_WCSRCHR = 0x240 // 576 + SYS_SVC99 = 0x241 // 577 + SYS___SVC99 = 0x241 // 577 + SYS_WCSWCS = 0x242 // 578 + SYS_LOCALECO = 0x243 // 579 + SYS_LOCALECONV = 0x243 // 579 + SYS___LIBREL = 0x244 // 580 + SYS_RELEASE = 0x245 // 581 + SYS___RLSE = 0x245 // 581 + SYS_FLOCATE = 0x246 // 582 + SYS___FLOCT = 0x246 // 582 + SYS_FDELREC = 0x247 // 583 + SYS___FDLREC = 0x247 // 583 + SYS_FETCH = 0x248 // 584 + SYS___FETCH = 0x248 // 584 + SYS_QSORT = 0x249 // 585 + SYS_GETENV = 0x24A // 586 + SYS_SYSTEM = 0x24B // 587 + SYS_BSEARCH = 0x24C // 588 + SYS_LDIV = 0x24D // 589 + SYS___THROW = 0x25E // 606 + SYS___RETHROW = 0x25F // 607 + SYS___CLEANUPCATCH = 0x260 // 608 + SYS___CATCHMATCH = 0x261 // 609 + SYS___CLEAN2UPCATCH = 0x262 // 610 + SYS_PUTENV = 0x26A // 618 + SYS___GETENV = 0x26F // 623 + SYS_GETPRIORITY = 0x270 // 624 + SYS_NICE = 0x271 // 625 + SYS_SETPRIORITY = 0x272 // 626 + SYS_GETITIMER = 0x273 // 627 + SYS_SETITIMER = 0x274 // 628 + SYS_MSGCTL = 0x275 // 629 + SYS_MSGGET = 0x276 // 630 + SYS_MSGRCV = 0x277 // 631 + SYS_MSGSND = 0x278 // 632 + SYS_MSGXRCV = 0x279 // 633 + SYS___MSGXR = 0x279 // 633 + SYS_SEMCTL = 0x27A // 634 + SYS_SEMGET = 0x27B // 635 + SYS_SEMOP = 0x27C // 636 + SYS_SHMAT = 0x27D // 637 + SYS_SHMCTL = 0x27E // 638 + SYS_SHMDT = 0x27F // 639 + SYS_SHMGET = 0x280 // 640 + SYS___GETIPC = 0x281 // 641 + SYS_SETGRENT = 0x282 // 642 + SYS_GETGRENT = 0x283 // 643 + SYS_ENDGRENT = 0x284 // 644 + SYS_SETPWENT = 0x285 // 645 + SYS_GETPWENT = 0x286 // 646 + SYS_ENDPWENT = 0x287 // 647 + SYS_BSD_SIGNAL = 0x288 // 648 + SYS_KILLPG = 0x289 // 649 + SYS_SIGALTSTACK = 0x28A // 650 + SYS_SIGHOLD = 0x28B // 651 + SYS_SIGIGNORE = 0x28C // 652 + SYS_SIGINTERRUPT = 0x28D // 653 + SYS_SIGPAUSE = 0x28E // 654 + SYS_SIGRELSE = 0x28F // 655 + SYS_SIGSET = 0x290 // 656 + SYS_SIGSTACK = 0x291 // 657 + SYS_GETRLIMIT = 0x292 // 658 + SYS_SETRLIMIT = 0x293 // 659 + SYS_GETRUSAGE = 0x294 // 660 + SYS_MMAP = 0x295 // 661 + SYS_MPROTECT = 0x296 // 662 + SYS_MSYNC = 0x297 // 663 + SYS_MUNMAP = 0x298 // 664 + SYS_CONFSTR = 0x299 // 665 + SYS_GETOPT = 0x29A // 666 + SYS_LCHOWN = 0x29B // 667 + SYS_TRUNCATE = 0x29C // 668 + SYS_GETSUBOPT = 0x29D // 669 + SYS_SETPGRP = 0x29E // 670 + SYS___GDERR = 0x29F // 671 + SYS___TZONE = 0x2A0 // 672 + SYS___DLGHT = 0x2A1 // 673 + SYS___OPARGF = 0x2A2 // 674 + SYS___OPOPTF = 0x2A3 // 675 + SYS___OPINDF = 0x2A4 // 676 + SYS___OPERRF = 0x2A5 // 677 + SYS_GETDATE = 0x2A6 // 678 + SYS_WAIT3 = 0x2A7 // 679 + SYS_WAITID = 0x2A8 // 680 + SYS___CATTRM = 0x2A9 // 681 + SYS___GDTRM = 0x2AA // 682 + SYS___RNDTRM = 0x2AB // 683 + SYS_CRYPT = 0x2AC // 684 + SYS_ENCRYPT = 0x2AD // 685 + SYS_SETKEY = 0x2AE // 686 + SYS___CNVBLK = 0x2AF // 687 + SYS___CRYTRM = 0x2B0 // 688 + SYS___ECRTRM = 0x2B1 // 689 + SYS_DRAND48 = 0x2B2 // 690 + SYS_ERAND48 = 0x2B3 // 691 + SYS_FSTATVFS = 0x2B4 // 692 + SYS_STATVFS = 0x2B5 // 693 + SYS_CATCLOSE = 0x2B6 // 694 + SYS_CATGETS = 0x2B7 // 695 + SYS_CATOPEN = 0x2B8 // 696 + SYS_BCMP = 0x2B9 // 697 + SYS_BCOPY = 0x2BA // 698 + SYS_BZERO = 0x2BB // 699 + SYS_FFS = 0x2BC // 700 + SYS_INDEX = 0x2BD // 701 + SYS_RINDEX = 0x2BE // 702 + SYS_STRCASECMP = 0x2BF // 703 + SYS_STRDUP = 0x2C0 // 704 + SYS_STRNCASECMP = 0x2C1 // 705 + SYS_INITSTATE = 0x2C2 // 706 + SYS_SETSTATE = 0x2C3 // 707 + SYS_RANDOM = 0x2C4 // 708 + SYS_SRANDOM = 0x2C5 // 709 + SYS_HCREATE = 0x2C6 // 710 + SYS_HDESTROY = 0x2C7 // 711 + SYS_HSEARCH = 0x2C8 // 712 + SYS_LFIND = 0x2C9 // 713 + SYS_LSEARCH = 0x2CA // 714 + SYS_TDELETE = 0x2CB // 715 + SYS_TFIND = 0x2CC // 716 + SYS_TSEARCH = 0x2CD // 717 + SYS_TWALK = 0x2CE // 718 + SYS_INSQUE = 0x2CF // 719 + SYS_REMQUE = 0x2D0 // 720 + SYS_POPEN = 0x2D1 // 721 + SYS_PCLOSE = 0x2D2 // 722 + SYS_SWAB = 0x2D3 // 723 + SYS_MEMCCPY = 0x2D4 // 724 + SYS_GETPAGESIZE = 0x2D8 // 728 + SYS_FCHDIR = 0x2D9 // 729 + SYS___OCLCK = 0x2DA // 730 + SYS___ATOE = 0x2DB // 731 + SYS___ATOE_L = 0x2DC // 732 + SYS___ETOA = 0x2DD // 733 + SYS___ETOA_L = 0x2DE // 734 + SYS_SETUTXENT = 0x2DF // 735 + SYS_GETUTXENT = 0x2E0 // 736 + SYS_ENDUTXENT = 0x2E1 // 737 + SYS_GETUTXID = 0x2E2 // 738 + SYS_GETUTXLINE = 0x2E3 // 739 + SYS_PUTUTXLINE = 0x2E4 // 740 + SYS_FMTMSG = 0x2E5 // 741 + SYS_JRAND48 = 0x2E6 // 742 + SYS_LRAND48 = 0x2E7 // 743 + SYS_MRAND48 = 0x2E8 // 744 + SYS_NRAND48 = 0x2E9 // 745 + SYS_LCONG48 = 0x2EA // 746 + SYS_SRAND48 = 0x2EB // 747 + SYS_SEED48 = 0x2EC // 748 + SYS_ISASCII = 0x2ED // 749 + SYS_TOASCII = 0x2EE // 750 + SYS_A64L = 0x2EF // 751 + SYS_L64A = 0x2F0 // 752 + SYS_UALARM = 0x2F1 // 753 + SYS_USLEEP = 0x2F2 // 754 + SYS___UTXTRM = 0x2F3 // 755 + SYS___SRCTRM = 0x2F4 // 756 + SYS_FTIME = 0x2F5 // 757 + SYS_GETTIMEOFDAY = 0x2F6 // 758 + SYS_DBM_CLEARERR = 0x2F7 // 759 + SYS_DBM_CLOSE = 0x2F8 // 760 + SYS_DBM_DELETE = 0x2F9 // 761 + SYS_DBM_ERROR = 0x2FA // 762 + SYS_DBM_FETCH = 0x2FB // 763 + SYS_DBM_FIRSTKEY = 0x2FC // 764 + SYS_DBM_NEXTKEY = 0x2FD // 765 + SYS_DBM_OPEN = 0x2FE // 766 + SYS_DBM_STORE = 0x2FF // 767 + SYS___NDMTRM = 0x300 // 768 + SYS_FTOK = 0x301 // 769 + SYS_BASENAME = 0x302 // 770 + SYS_DIRNAME = 0x303 // 771 + SYS_GETDTABLESIZE = 0x304 // 772 + SYS_MKSTEMP = 0x305 // 773 + SYS_MKTEMP = 0x306 // 774 + SYS_NFTW = 0x307 // 775 + SYS_GETWD = 0x308 // 776 + SYS_LOCKF = 0x309 // 777 + SYS__LONGJMP = 0x30D // 781 + SYS__SETJMP = 0x30E // 782 + SYS_VFORK = 0x30F // 783 + SYS_WORDEXP = 0x310 // 784 + SYS_WORDFREE = 0x311 // 785 + SYS_GETPGID = 0x312 // 786 + SYS_GETSID = 0x313 // 787 + SYS___UTMPXNAME = 0x314 // 788 + SYS_CUSERID = 0x315 // 789 + SYS_GETPASS = 0x316 // 790 + SYS_FNMATCH = 0x317 // 791 + SYS_FTW = 0x318 // 792 + SYS_GETW = 0x319 // 793 + SYS_GLOB = 0x31A // 794 + SYS_GLOBFREE = 0x31B // 795 + SYS_PUTW = 0x31C // 796 + SYS_SEEKDIR = 0x31D // 797 + SYS_TELLDIR = 0x31E // 798 + SYS_TEMPNAM = 0x31F // 799 + SYS_ACOSH = 0x320 // 800 + SYS_ASINH = 0x321 // 801 + SYS_ATANH = 0x322 // 802 + SYS_CBRT = 0x323 // 803 + SYS_EXPM1 = 0x324 // 804 + SYS_ILOGB = 0x325 // 805 + SYS_LOGB = 0x326 // 806 + SYS_LOG1P = 0x327 // 807 + SYS_NEXTAFTER = 0x328 // 808 + SYS_RINT = 0x329 // 809 + SYS_REMAINDER = 0x32A // 810 + SYS_SCALB = 0x32B // 811 + SYS_LGAMMA = 0x32C // 812 + SYS_TTYSLOT = 0x32D // 813 + SYS_GETTIMEOFDAY_R = 0x32E // 814 + SYS_SYNC = 0x32F // 815 + SYS_SPAWN = 0x330 // 816 + SYS_SPAWNP = 0x331 // 817 + SYS_GETLOGIN_UU = 0x332 // 818 + SYS_ECVT = 0x333 // 819 + SYS_FCVT = 0x334 // 820 + SYS_GCVT = 0x335 // 821 + SYS_ACCEPT = 0x336 // 822 + SYS_BIND = 0x337 // 823 + SYS_CONNECT = 0x338 // 824 + SYS_ENDHOSTENT = 0x339 // 825 + SYS_ENDPROTOENT = 0x33A // 826 + SYS_ENDSERVENT = 0x33B // 827 + SYS_GETHOSTBYADDR_R = 0x33C // 828 + SYS_GETHOSTBYADDR = 0x33D // 829 + SYS_GETHOSTBYNAME_R = 0x33E // 830 + SYS_GETHOSTBYNAME = 0x33F // 831 + SYS_GETHOSTENT = 0x340 // 832 + SYS_GETHOSTID = 0x341 // 833 + SYS_GETHOSTNAME = 0x342 // 834 + SYS_GETNETBYADDR = 0x343 // 835 + SYS_GETNETBYNAME = 0x344 // 836 + SYS_GETNETENT = 0x345 // 837 + SYS_GETPEERNAME = 0x346 // 838 + SYS_GETPROTOBYNAME = 0x347 // 839 + SYS_GETPROTOBYNUMBER = 0x348 // 840 + SYS_GETPROTOENT = 0x349 // 841 + SYS_GETSERVBYNAME = 0x34A // 842 + SYS_GETSERVBYPORT = 0x34B // 843 + SYS_GETSERVENT = 0x34C // 844 + SYS_GETSOCKNAME = 0x34D // 845 + SYS_GETSOCKOPT = 0x34E // 846 + SYS_INET_ADDR = 0x34F // 847 + SYS_INET_LNAOF = 0x350 // 848 + SYS_INET_MAKEADDR = 0x351 // 849 + SYS_INET_NETOF = 0x352 // 850 + SYS_INET_NETWORK = 0x353 // 851 + SYS_INET_NTOA = 0x354 // 852 + SYS_IOCTL = 0x355 // 853 + SYS_LISTEN = 0x356 // 854 + SYS_READV = 0x357 // 855 + SYS_RECV = 0x358 // 856 + SYS_RECVFROM = 0x359 // 857 + SYS_SELECT = 0x35B // 859 + SYS_SELECTEX = 0x35C // 860 + SYS_SEND = 0x35D // 861 + SYS_SENDTO = 0x35F // 863 + SYS_SETHOSTENT = 0x360 // 864 + SYS_SETNETENT = 0x361 // 865 + SYS_SETPEER = 0x362 // 866 + SYS_SETPROTOENT = 0x363 // 867 + SYS_SETSERVENT = 0x364 // 868 + SYS_SETSOCKOPT = 0x365 // 869 + SYS_SHUTDOWN = 0x366 // 870 + SYS_SOCKET = 0x367 // 871 + SYS_SOCKETPAIR = 0x368 // 872 + SYS_WRITEV = 0x369 // 873 + SYS_CHROOT = 0x36A // 874 + SYS_W_STATVFS = 0x36B // 875 + SYS_ULIMIT = 0x36C // 876 + SYS_ISNAN = 0x36D // 877 + SYS_UTIMES = 0x36E // 878 + SYS___H_ERRNO = 0x36F // 879 + SYS_ENDNETENT = 0x370 // 880 + SYS_CLOSELOG = 0x371 // 881 + SYS_OPENLOG = 0x372 // 882 + SYS_SETLOGMASK = 0x373 // 883 + SYS_SYSLOG = 0x374 // 884 + SYS_PTSNAME = 0x375 // 885 + SYS_SETREUID = 0x376 // 886 + SYS_SETREGID = 0x377 // 887 + SYS_REALPATH = 0x378 // 888 + SYS___SIGNGAM = 0x379 // 889 + SYS_GRANTPT = 0x37A // 890 + SYS_UNLOCKPT = 0x37B // 891 + SYS_TCGETSID = 0x37C // 892 + SYS___TCGETCP = 0x37D // 893 + SYS___TCSETCP = 0x37E // 894 + SYS___TCSETTABLES = 0x37F // 895 + SYS_POLL = 0x380 // 896 + SYS_REXEC = 0x381 // 897 + SYS___ISASCII2 = 0x382 // 898 + SYS___TOASCII2 = 0x383 // 899 + SYS_CHPRIORITY = 0x384 // 900 + SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 // 901 + SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 // 902 + SYS_PTHREAD_SET_LIMIT_NP = 0x387 // 903 + SYS___STNETENT = 0x388 // 904 + SYS___STPROTOENT = 0x389 // 905 + SYS___STSERVENT = 0x38A // 906 + SYS___STHOSTENT = 0x38B // 907 + SYS_NLIST = 0x38C // 908 + SYS___IPDBCS = 0x38D // 909 + SYS___IPDSPX = 0x38E // 910 + SYS___IPMSGC = 0x38F // 911 + SYS___SELECT1 = 0x390 // 912 + SYS_PTHREAD_SECURITY_NP = 0x391 // 913 + SYS___CHECK_RESOURCE_AUTH_NP = 0x392 // 914 + SYS___CONVERT_ID_NP = 0x393 // 915 + SYS___OPENVMREL = 0x394 // 916 + SYS_WMEMCHR = 0x395 // 917 + SYS_WMEMCMP = 0x396 // 918 + SYS_WMEMCPY = 0x397 // 919 + SYS_WMEMMOVE = 0x398 // 920 + SYS_WMEMSET = 0x399 // 921 + SYS___FPUTWC = 0x400 // 1024 + SYS___PUTWC = 0x401 // 1025 + SYS___PWCHAR = 0x402 // 1026 + SYS___WCSFTM = 0x403 // 1027 + SYS___WCSTOK = 0x404 // 1028 + SYS___WCWDTH = 0x405 // 1029 + SYS_T_ACCEPT = 0x409 // 1033 + SYS_T_ALLOC = 0x40A // 1034 + SYS_T_BIND = 0x40B // 1035 + SYS_T_CLOSE = 0x40C // 1036 + SYS_T_CONNECT = 0x40D // 1037 + SYS_T_ERROR = 0x40E // 1038 + SYS_T_FREE = 0x40F // 1039 + SYS_T_GETINFO = 0x410 // 1040 + SYS_T_GETPROTADDR = 0x411 // 1041 + SYS_T_GETSTATE = 0x412 // 1042 + SYS_T_LISTEN = 0x413 // 1043 + SYS_T_LOOK = 0x414 // 1044 + SYS_T_OPEN = 0x415 // 1045 + SYS_T_OPTMGMT = 0x416 // 1046 + SYS_T_RCV = 0x417 // 1047 + SYS_T_RCVCONNECT = 0x418 // 1048 + SYS_T_RCVDIS = 0x419 // 1049 + SYS_T_RCVREL = 0x41A // 1050 + SYS_T_RCVUDATA = 0x41B // 1051 + SYS_T_RCVUDERR = 0x41C // 1052 + SYS_T_SND = 0x41D // 1053 + SYS_T_SNDDIS = 0x41E // 1054 + SYS_T_SNDREL = 0x41F // 1055 + SYS_T_SNDUDATA = 0x420 // 1056 + SYS_T_STRERROR = 0x421 // 1057 + SYS_T_SYNC = 0x422 // 1058 + SYS_T_UNBIND = 0x423 // 1059 + SYS___T_ERRNO = 0x424 // 1060 + SYS___RECVMSG2 = 0x425 // 1061 + SYS___SENDMSG2 = 0x426 // 1062 + SYS_FATTACH = 0x427 // 1063 + SYS_FDETACH = 0x428 // 1064 + SYS_GETMSG = 0x429 // 1065 + SYS_GETPMSG = 0x42A // 1066 + SYS_ISASTREAM = 0x42B // 1067 + SYS_PUTMSG = 0x42C // 1068 + SYS_PUTPMSG = 0x42D // 1069 + SYS___ISPOSIXON = 0x42E // 1070 + SYS___OPENMVSREL = 0x42F // 1071 + SYS_GETCONTEXT = 0x430 // 1072 + SYS_SETCONTEXT = 0x431 // 1073 + SYS_MAKECONTEXT = 0x432 // 1074 + SYS_SWAPCONTEXT = 0x433 // 1075 + SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 // 1076 + SYS_GETCLIENTID = 0x470 // 1136 + SYS___GETCLIENTID = 0x471 // 1137 + SYS_GETSTABLESIZE = 0x472 // 1138 + SYS_GETIBMOPT = 0x473 // 1139 + SYS_GETIBMSOCKOPT = 0x474 // 1140 + SYS_GIVESOCKET = 0x475 // 1141 + SYS_IBMSFLUSH = 0x476 // 1142 + SYS_MAXDESC = 0x477 // 1143 + SYS_SETIBMOPT = 0x478 // 1144 + SYS_SETIBMSOCKOPT = 0x479 // 1145 + SYS_SOCK_DEBUG = 0x47A // 1146 + SYS_SOCK_DO_TESTSTOR = 0x47D // 1149 + SYS_TAKESOCKET = 0x47E // 1150 + SYS___SERVER_INIT = 0x47F // 1151 + SYS___SERVER_PWU = 0x480 // 1152 + SYS_PTHREAD_TAG_NP = 0x481 // 1153 + SYS___CONSOLE = 0x482 // 1154 + SYS___WSINIT = 0x483 // 1155 + SYS___IPTCPN = 0x489 // 1161 + SYS___SMF_RECORD = 0x48A // 1162 + SYS___IPHOST = 0x48B // 1163 + SYS___IPNODE = 0x48C // 1164 + SYS___SERVER_CLASSIFY_CREATE = 0x48D // 1165 + SYS___SERVER_CLASSIFY_DESTROY = 0x48E // 1166 + SYS___SERVER_CLASSIFY_RESET = 0x48F // 1167 + SYS___SERVER_CLASSIFY = 0x490 // 1168 + SYS___HEAPRPT = 0x496 // 1174 + SYS___FNWSA = 0x49B // 1179 + SYS___SPAWN2 = 0x49D // 1181 + SYS___SPAWNP2 = 0x49E // 1182 + SYS___GDRR = 0x4A1 // 1185 + SYS___HRRNO = 0x4A2 // 1186 + SYS___OPRG = 0x4A3 // 1187 + SYS___OPRR = 0x4A4 // 1188 + SYS___OPND = 0x4A5 // 1189 + SYS___OPPT = 0x4A6 // 1190 + SYS___SIGGM = 0x4A7 // 1191 + SYS___DGHT = 0x4A8 // 1192 + SYS___TZNE = 0x4A9 // 1193 + SYS___TZZN = 0x4AA // 1194 + SYS___TRRNO = 0x4AF // 1199 + SYS___ENVN = 0x4B0 // 1200 + SYS___MLOCKALL = 0x4B1 // 1201 + SYS_CREATEWO = 0x4B2 // 1202 + SYS_CREATEWORKUNIT = 0x4B2 // 1202 + SYS_CONTINUE = 0x4B3 // 1203 + SYS_CONTINUEWORKUNIT = 0x4B3 // 1203 + SYS_CONNECTW = 0x4B4 // 1204 + SYS_CONNECTWORKMGR = 0x4B4 // 1204 + SYS_CONNECTS = 0x4B5 // 1205 + SYS_CONNECTSERVER = 0x4B5 // 1205 + SYS_DISCONNE = 0x4B6 // 1206 + SYS_DISCONNECTSERVER = 0x4B6 // 1206 + SYS_JOINWORK = 0x4B7 // 1207 + SYS_JOINWORKUNIT = 0x4B7 // 1207 + SYS_LEAVEWOR = 0x4B8 // 1208 + SYS_LEAVEWORKUNIT = 0x4B8 // 1208 + SYS_DELETEWO = 0x4B9 // 1209 + SYS_DELETEWORKUNIT = 0x4B9 // 1209 + SYS_QUERYMET = 0x4BA // 1210 + SYS_QUERYMETRICS = 0x4BA // 1210 + SYS_QUERYSCH = 0x4BB // 1211 + SYS_QUERYSCHENV = 0x4BB // 1211 + SYS_CHECKSCH = 0x4BC // 1212 + SYS_CHECKSCHENV = 0x4BC // 1212 + SYS___PID_AFFINITY = 0x4BD // 1213 + SYS___ASINH_B = 0x4BE // 1214 + SYS___ATAN_B = 0x4BF // 1215 + SYS___CBRT_B = 0x4C0 // 1216 + SYS___CEIL_B = 0x4C1 // 1217 + SYS_COPYSIGN = 0x4C2 // 1218 + SYS___COS_B = 0x4C3 // 1219 + SYS___ERF_B = 0x4C4 // 1220 + SYS___ERFC_B = 0x4C5 // 1221 + SYS___EXPM1_B = 0x4C6 // 1222 + SYS___FABS_B = 0x4C7 // 1223 + SYS_FINITE = 0x4C8 // 1224 + SYS___FLOOR_B = 0x4C9 // 1225 + SYS___FREXP_B = 0x4CA // 1226 + SYS___ILOGB_B = 0x4CB // 1227 + SYS___ISNAN_B = 0x4CC // 1228 + SYS___LDEXP_B = 0x4CD // 1229 + SYS___LOG1P_B = 0x4CE // 1230 + SYS___LOGB_B = 0x4CF // 1231 + SYS_MATHERR = 0x4D0 // 1232 + SYS___MODF_B = 0x4D1 // 1233 + SYS___NEXTAFTER_B = 0x4D2 // 1234 + SYS___RINT_B = 0x4D3 // 1235 + SYS_SCALBN = 0x4D4 // 1236 + SYS_SIGNIFIC = 0x4D5 // 1237 + SYS_SIGNIFICAND = 0x4D5 // 1237 + SYS___SIN_B = 0x4D6 // 1238 + SYS___TAN_B = 0x4D7 // 1239 + SYS___TANH_B = 0x4D8 // 1240 + SYS___ACOS_B = 0x4D9 // 1241 + SYS___ACOSH_B = 0x4DA // 1242 + SYS___ASIN_B = 0x4DB // 1243 + SYS___ATAN2_B = 0x4DC // 1244 + SYS___ATANH_B = 0x4DD // 1245 + SYS___COSH_B = 0x4DE // 1246 + SYS___EXP_B = 0x4DF // 1247 + SYS___FMOD_B = 0x4E0 // 1248 + SYS___GAMMA_B = 0x4E1 // 1249 + SYS_GAMMA_R = 0x4E2 // 1250 + SYS___HYPOT_B = 0x4E3 // 1251 + SYS___J0_B = 0x4E4 // 1252 + SYS___Y0_B = 0x4E5 // 1253 + SYS___J1_B = 0x4E6 // 1254 + SYS___Y1_B = 0x4E7 // 1255 + SYS___JN_B = 0x4E8 // 1256 + SYS___YN_B = 0x4E9 // 1257 + SYS___LGAMMA_B = 0x4EA // 1258 + SYS_LGAMMA_R = 0x4EB // 1259 + SYS___LOG_B = 0x4EC // 1260 + SYS___LOG10_B = 0x4ED // 1261 + SYS___POW_B = 0x4EE // 1262 + SYS___REMAINDER_B = 0x4EF // 1263 + SYS___SCALB_B = 0x4F0 // 1264 + SYS___SINH_B = 0x4F1 // 1265 + SYS___SQRT_B = 0x4F2 // 1266 + SYS___OPENDIR2 = 0x4F3 // 1267 + SYS___READDIR2 = 0x4F4 // 1268 + SYS___LOGIN = 0x4F5 // 1269 + SYS___OPEN_STAT = 0x4F6 // 1270 + SYS_ACCEPT_AND_RECV = 0x4F7 // 1271 + SYS___FP_SETMODE = 0x4F8 // 1272 + SYS___SIGACTIONSET = 0x4FB // 1275 + SYS___UCREATE = 0x4FC // 1276 + SYS___UMALLOC = 0x4FD // 1277 + SYS___UFREE = 0x4FE // 1278 + SYS___UHEAPREPORT = 0x4FF // 1279 + SYS___ISBFP = 0x500 // 1280 + SYS___FP_CAST = 0x501 // 1281 + SYS___CERTIFICATE = 0x502 // 1282 + SYS_SEND_FILE = 0x503 // 1283 + SYS_AIO_CANCEL = 0x504 // 1284 + SYS_AIO_ERROR = 0x505 // 1285 + SYS_AIO_READ = 0x506 // 1286 + SYS_AIO_RETURN = 0x507 // 1287 + SYS_AIO_SUSPEND = 0x508 // 1288 + SYS_AIO_WRITE = 0x509 // 1289 + SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A // 1290 + SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B // 1291 + SYS_PTHREAD_RWLOCK_DESTROY = 0x50C // 1292 + SYS_PTHREAD_RWLOCK_INIT = 0x50D // 1293 + SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E // 1294 + SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F // 1295 + SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 // 1296 + SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 // 1297 + SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 // 1298 + SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 // 1299 + SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 // 1300 + SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 // 1301 + SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 // 1302 + SYS___CTTBL = 0x517 // 1303 + SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 // 1304 + SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 // 1305 + SYS___FP_CLR_FLAG = 0x51A // 1306 + SYS___FP_READ_FLAG = 0x51B // 1307 + SYS___FP_RAISE_XCP = 0x51C // 1308 + SYS___FP_CLASS = 0x51D // 1309 + SYS___FP_FINITE = 0x51E // 1310 + SYS___FP_ISNAN = 0x51F // 1311 + SYS___FP_UNORDERED = 0x520 // 1312 + SYS___FP_READ_RND = 0x521 // 1313 + SYS___FP_READ_RND_B = 0x522 // 1314 + SYS___FP_SWAP_RND = 0x523 // 1315 + SYS___FP_SWAP_RND_B = 0x524 // 1316 + SYS___FP_LEVEL = 0x525 // 1317 + SYS___FP_BTOH = 0x526 // 1318 + SYS___FP_HTOB = 0x527 // 1319 + SYS___FPC_RD = 0x528 // 1320 + SYS___FPC_WR = 0x529 // 1321 + SYS___FPC_RW = 0x52A // 1322 + SYS___FPC_SM = 0x52B // 1323 + SYS___FPC_RS = 0x52C // 1324 + SYS_SIGTIMEDWAIT = 0x52D // 1325 + SYS_SIGWAITINFO = 0x52E // 1326 + SYS___CHKBFP = 0x52F // 1327 + SYS___W_PIOCTL = 0x59E // 1438 + SYS___OSENV = 0x59F // 1439 + SYS_EXPORTWO = 0x5A1 // 1441 + SYS_EXPORTWORKUNIT = 0x5A1 // 1441 + SYS_UNDOEXPO = 0x5A2 // 1442 + SYS_UNDOEXPORTWORKUNIT = 0x5A2 // 1442 + SYS_IMPORTWO = 0x5A3 // 1443 + SYS_IMPORTWORKUNIT = 0x5A3 // 1443 + SYS_UNDOIMPO = 0x5A4 // 1444 + SYS_UNDOIMPORTWORKUNIT = 0x5A4 // 1444 + SYS_EXTRACTW = 0x5A5 // 1445 + SYS_EXTRACTWORKUNIT = 0x5A5 // 1445 + SYS___CPL = 0x5A6 // 1446 + SYS___MAP_INIT = 0x5A7 // 1447 + SYS___MAP_SERVICE = 0x5A8 // 1448 + SYS_SIGQUEUE = 0x5A9 // 1449 + SYS___MOUNT = 0x5AA // 1450 + SYS___GETUSERID = 0x5AB // 1451 + SYS___IPDOMAINNAME = 0x5AC // 1452 + SYS_QUERYENC = 0x5AD // 1453 + SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD // 1453 + SYS_CONNECTE = 0x5AE // 1454 + SYS_CONNECTEXPORTIMPORT = 0x5AE // 1454 + SYS___FP_SWAPMODE = 0x5AF // 1455 + SYS_STRTOLL = 0x5B0 // 1456 + SYS_STRTOULL = 0x5B1 // 1457 + SYS___DSA_PREV = 0x5B2 // 1458 + SYS___EP_FIND = 0x5B3 // 1459 + SYS___SERVER_THREADS_QUERY = 0x5B4 // 1460 + SYS___MSGRCV_TIMED = 0x5B7 // 1463 + SYS___SEMOP_TIMED = 0x5B8 // 1464 + SYS___GET_CPUID = 0x5B9 // 1465 + SYS___GET_SYSTEM_SETTINGS = 0x5BA // 1466 + SYS_FTELLO = 0x5C8 // 1480 + SYS_FSEEKO = 0x5C9 // 1481 + SYS_LLDIV = 0x5CB // 1483 + SYS_WCSTOLL = 0x5CC // 1484 + SYS_WCSTOULL = 0x5CD // 1485 + SYS_LLABS = 0x5CE // 1486 + SYS___CONSOLE2 = 0x5D2 // 1490 + SYS_INET_NTOP = 0x5D3 // 1491 + SYS_INET_PTON = 0x5D4 // 1492 + SYS___RES = 0x5D6 // 1494 + SYS_RES_MKQUERY = 0x5D7 // 1495 + SYS_RES_INIT = 0x5D8 // 1496 + SYS_RES_QUERY = 0x5D9 // 1497 + SYS_RES_SEARCH = 0x5DA // 1498 + SYS_RES_SEND = 0x5DB // 1499 + SYS_RES_QUERYDOMAIN = 0x5DC // 1500 + SYS_DN_EXPAND = 0x5DD // 1501 + SYS_DN_SKIPNAME = 0x5DE // 1502 + SYS_DN_COMP = 0x5DF // 1503 + SYS_ASCTIME_R = 0x5E0 // 1504 + SYS_CTIME_R = 0x5E1 // 1505 + SYS_GMTIME_R = 0x5E2 // 1506 + SYS_LOCALTIME_R = 0x5E3 // 1507 + SYS_RAND_R = 0x5E4 // 1508 + SYS_STRTOK_R = 0x5E5 // 1509 + SYS_READDIR_R = 0x5E6 // 1510 + SYS_GETGRGID_R = 0x5E7 // 1511 + SYS_GETGRNAM_R = 0x5E8 // 1512 + SYS_GETLOGIN_R = 0x5E9 // 1513 + SYS_GETPWNAM_R = 0x5EA // 1514 + SYS_GETPWUID_R = 0x5EB // 1515 + SYS_TTYNAME_R = 0x5EC // 1516 + SYS_PTHREAD_ATFORK = 0x5ED // 1517 + SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE // 1518 + SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF // 1519 + SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 // 1520 + SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 // 1521 + SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 // 1522 + SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 // 1523 + SYS_PTHREAD_GETCONCURRENCY = 0x5F4 // 1524 + SYS_PTHREAD_KEY_DELETE = 0x5F5 // 1525 + SYS_PTHREAD_SETCONCURRENCY = 0x5F6 // 1526 + SYS_PTHREAD_SIGMASK = 0x5F7 // 1527 + SYS___DISCARDDATA = 0x5F8 // 1528 + SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 // 1529 + SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA // 1530 + SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531 + SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532 + SYS_PTHREAD_DETACH_U98 = 0x5FD // 1533 + SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE // 1534 + SYS_PTHREAD_SETCANCELSTATE = 0x5FF // 1535 + SYS_PTHREAD_SETCANCELTYPE = 0x600 // 1536 + SYS_PTHREAD_TESTCANCEL = 0x601 // 1537 + SYS___ATANF_B = 0x602 // 1538 + SYS___ATANL_B = 0x603 // 1539 + SYS___CEILF_B = 0x604 // 1540 + SYS___CEILL_B = 0x605 // 1541 + SYS___COSF_B = 0x606 // 1542 + SYS___COSL_B = 0x607 // 1543 + SYS___FABSF_B = 0x608 // 1544 + SYS___FABSL_B = 0x609 // 1545 + SYS___FLOORF_B = 0x60A // 1546 + SYS___FLOORL_B = 0x60B // 1547 + SYS___FREXPF_B = 0x60C // 1548 + SYS___FREXPL_B = 0x60D // 1549 + SYS___LDEXPF_B = 0x60E // 1550 + SYS___LDEXPL_B = 0x60F // 1551 + SYS___SINF_B = 0x610 // 1552 + SYS___SINL_B = 0x611 // 1553 + SYS___TANF_B = 0x612 // 1554 + SYS___TANL_B = 0x613 // 1555 + SYS___TANHF_B = 0x614 // 1556 + SYS___TANHL_B = 0x615 // 1557 + SYS___ACOSF_B = 0x616 // 1558 + SYS___ACOSL_B = 0x617 // 1559 + SYS___ASINF_B = 0x618 // 1560 + SYS___ASINL_B = 0x619 // 1561 + SYS___ATAN2F_B = 0x61A // 1562 + SYS___ATAN2L_B = 0x61B // 1563 + SYS___COSHF_B = 0x61C // 1564 + SYS___COSHL_B = 0x61D // 1565 + SYS___EXPF_B = 0x61E // 1566 + SYS___EXPL_B = 0x61F // 1567 + SYS___LOGF_B = 0x620 // 1568 + SYS___LOGL_B = 0x621 // 1569 + SYS___LOG10F_B = 0x622 // 1570 + SYS___LOG10L_B = 0x623 // 1571 + SYS___POWF_B = 0x624 // 1572 + SYS___POWL_B = 0x625 // 1573 + SYS___SINHF_B = 0x626 // 1574 + SYS___SINHL_B = 0x627 // 1575 + SYS___SQRTF_B = 0x628 // 1576 + SYS___SQRTL_B = 0x629 // 1577 + SYS___ABSF_B = 0x62A // 1578 + SYS___ABS_B = 0x62B // 1579 + SYS___ABSL_B = 0x62C // 1580 + SYS___FMODF_B = 0x62D // 1581 + SYS___FMODL_B = 0x62E // 1582 + SYS___MODFF_B = 0x62F // 1583 + SYS___MODFL_B = 0x630 // 1584 + SYS_ABSF = 0x631 // 1585 + SYS_ABSL = 0x632 // 1586 + SYS_ACOSF = 0x633 // 1587 + SYS_ACOSL = 0x634 // 1588 + SYS_ASINF = 0x635 // 1589 + SYS_ASINL = 0x636 // 1590 + SYS_ATAN2F = 0x637 // 1591 + SYS_ATAN2L = 0x638 // 1592 + SYS_ATANF = 0x639 // 1593 + SYS_ATANL = 0x63A // 1594 + SYS_CEILF = 0x63B // 1595 + SYS_CEILL = 0x63C // 1596 + SYS_COSF = 0x63D // 1597 + SYS_COSL = 0x63E // 1598 + SYS_COSHF = 0x63F // 1599 + SYS_COSHL = 0x640 // 1600 + SYS_EXPF = 0x641 // 1601 + SYS_EXPL = 0x642 // 1602 + SYS_TANHF = 0x643 // 1603 + SYS_TANHL = 0x644 // 1604 + SYS_LOG10F = 0x645 // 1605 + SYS_LOG10L = 0x646 // 1606 + SYS_LOGF = 0x647 // 1607 + SYS_LOGL = 0x648 // 1608 + SYS_POWF = 0x649 // 1609 + SYS_POWL = 0x64A // 1610 + SYS_SINF = 0x64B // 1611 + SYS_SINL = 0x64C // 1612 + SYS_SQRTF = 0x64D // 1613 + SYS_SQRTL = 0x64E // 1614 + SYS_SINHF = 0x64F // 1615 + SYS_SINHL = 0x650 // 1616 + SYS_TANF = 0x651 // 1617 + SYS_TANL = 0x652 // 1618 + SYS_FABSF = 0x653 // 1619 + SYS_FABSL = 0x654 // 1620 + SYS_FLOORF = 0x655 // 1621 + SYS_FLOORL = 0x656 // 1622 + SYS_FMODF = 0x657 // 1623 + SYS_FMODL = 0x658 // 1624 + SYS_FREXPF = 0x659 // 1625 + SYS_FREXPL = 0x65A // 1626 + SYS_LDEXPF = 0x65B // 1627 + SYS_LDEXPL = 0x65C // 1628 + SYS_MODFF = 0x65D // 1629 + SYS_MODFL = 0x65E // 1630 + SYS_BTOWC = 0x65F // 1631 + SYS___CHATTR = 0x660 // 1632 + SYS___FCHATTR = 0x661 // 1633 + SYS___TOCCSID = 0x662 // 1634 + SYS___CSNAMETYPE = 0x663 // 1635 + SYS___TOCSNAME = 0x664 // 1636 + SYS___CCSIDTYPE = 0x665 // 1637 + SYS___AE_CORRESTBL_QUERY = 0x666 // 1638 + SYS___AE_AUTOCONVERT_STATE = 0x667 // 1639 + SYS_DN_FIND = 0x668 // 1640 + SYS___GETHOSTBYADDR_A = 0x669 // 1641 + SYS___GETHOSTBYNAME_A = 0x66A // 1642 + SYS___RES_INIT_A = 0x66B // 1643 + SYS___GETHOSTBYADDR_R_A = 0x66C // 1644 + SYS___GETHOSTBYNAME_R_A = 0x66D // 1645 + SYS___CHARMAP_INIT_A = 0x66E // 1646 + SYS___MBLEN_A = 0x66F // 1647 + SYS___MBLEN_SB_A = 0x670 // 1648 + SYS___MBLEN_STD_A = 0x671 // 1649 + SYS___MBLEN_UTF = 0x672 // 1650 + SYS___MBSTOWCS_A = 0x673 // 1651 + SYS___MBSTOWCS_STD_A = 0x674 // 1652 + SYS___MBTOWC_A = 0x675 // 1653 + SYS___MBTOWC_ISO1 = 0x676 // 1654 + SYS___MBTOWC_SBCS = 0x677 // 1655 + SYS___MBTOWC_MBCS = 0x678 // 1656 + SYS___MBTOWC_UTF = 0x679 // 1657 + SYS___WCSTOMBS_A = 0x67A // 1658 + SYS___WCSTOMBS_STD_A = 0x67B // 1659 + SYS___WCSWIDTH_A = 0x67C // 1660 + SYS___GETGRGID_R_A = 0x67D // 1661 + SYS___WCSWIDTH_STD_A = 0x67E // 1662 + SYS___WCSWIDTH_ASIA = 0x67F // 1663 + SYS___CSID_A = 0x680 // 1664 + SYS___CSID_STD_A = 0x681 // 1665 + SYS___WCSID_A = 0x682 // 1666 + SYS___WCSID_STD_A = 0x683 // 1667 + SYS___WCTOMB_A = 0x684 // 1668 + SYS___WCTOMB_ISO1 = 0x685 // 1669 + SYS___WCTOMB_STD_A = 0x686 // 1670 + SYS___WCTOMB_UTF = 0x687 // 1671 + SYS___WCWIDTH_A = 0x688 // 1672 + SYS___GETGRNAM_R_A = 0x689 // 1673 + SYS___WCWIDTH_STD_A = 0x68A // 1674 + SYS___WCWIDTH_ASIA = 0x68B // 1675 + SYS___GETPWNAM_R_A = 0x68C // 1676 + SYS___GETPWUID_R_A = 0x68D // 1677 + SYS___GETLOGIN_R_A = 0x68E // 1678 + SYS___TTYNAME_R_A = 0x68F // 1679 + SYS___READDIR_R_A = 0x690 // 1680 + SYS___E2A_S = 0x691 // 1681 + SYS___FNMATCH_A = 0x692 // 1682 + SYS___FNMATCH_C_A = 0x693 // 1683 + SYS___EXECL_A = 0x694 // 1684 + SYS___FNMATCH_STD_A = 0x695 // 1685 + SYS___REGCOMP_A = 0x696 // 1686 + SYS___REGCOMP_STD_A = 0x697 // 1687 + SYS___REGERROR_A = 0x698 // 1688 + SYS___REGERROR_STD_A = 0x699 // 1689 + SYS___REGEXEC_A = 0x69A // 1690 + SYS___REGEXEC_STD_A = 0x69B // 1691 + SYS___REGFREE_A = 0x69C // 1692 + SYS___REGFREE_STD_A = 0x69D // 1693 + SYS___STRCOLL_A = 0x69E // 1694 + SYS___STRCOLL_C_A = 0x69F // 1695 + SYS___EXECLE_A = 0x6A0 // 1696 + SYS___STRCOLL_STD_A = 0x6A1 // 1697 + SYS___STRXFRM_A = 0x6A2 // 1698 + SYS___STRXFRM_C_A = 0x6A3 // 1699 + SYS___EXECLP_A = 0x6A4 // 1700 + SYS___STRXFRM_STD_A = 0x6A5 // 1701 + SYS___WCSCOLL_A = 0x6A6 // 1702 + SYS___WCSCOLL_C_A = 0x6A7 // 1703 + SYS___WCSCOLL_STD_A = 0x6A8 // 1704 + SYS___WCSXFRM_A = 0x6A9 // 1705 + SYS___WCSXFRM_C_A = 0x6AA // 1706 + SYS___WCSXFRM_STD_A = 0x6AB // 1707 + SYS___COLLATE_INIT_A = 0x6AC // 1708 + SYS___WCTYPE_A = 0x6AD // 1709 + SYS___GET_WCTYPE_STD_A = 0x6AE // 1710 + SYS___CTYPE_INIT_A = 0x6AF // 1711 + SYS___ISWCTYPE_A = 0x6B0 // 1712 + SYS___EXECV_A = 0x6B1 // 1713 + SYS___IS_WCTYPE_STD_A = 0x6B2 // 1714 + SYS___TOWLOWER_A = 0x6B3 // 1715 + SYS___TOWLOWER_STD_A = 0x6B4 // 1716 + SYS___TOWUPPER_A = 0x6B5 // 1717 + SYS___TOWUPPER_STD_A = 0x6B6 // 1718 + SYS___LOCALE_INIT_A = 0x6B7 // 1719 + SYS___LOCALECONV_A = 0x6B8 // 1720 + SYS___LOCALECONV_STD_A = 0x6B9 // 1721 + SYS___NL_LANGINFO_A = 0x6BA // 1722 + SYS___NL_LNAGINFO_STD_A = 0x6BB // 1723 + SYS___MONETARY_INIT_A = 0x6BC // 1724 + SYS___STRFMON_A = 0x6BD // 1725 + SYS___STRFMON_STD_A = 0x6BE // 1726 + SYS___GETADDRINFO_A = 0x6BF // 1727 + SYS___CATGETS_A = 0x6C0 // 1728 + SYS___EXECVE_A = 0x6C1 // 1729 + SYS___EXECVP_A = 0x6C2 // 1730 + SYS___SPAWN_A = 0x6C3 // 1731 + SYS___GETNAMEINFO_A = 0x6C4 // 1732 + SYS___SPAWNP_A = 0x6C5 // 1733 + SYS___NUMERIC_INIT_A = 0x6C6 // 1734 + SYS___RESP_INIT_A = 0x6C7 // 1735 + SYS___RPMATCH_A = 0x6C8 // 1736 + SYS___RPMATCH_C_A = 0x6C9 // 1737 + SYS___RPMATCH_STD_A = 0x6CA // 1738 + SYS___TIME_INIT_A = 0x6CB // 1739 + SYS___STRFTIME_A = 0x6CC // 1740 + SYS___STRFTIME_STD_A = 0x6CD // 1741 + SYS___STRPTIME_A = 0x6CE // 1742 + SYS___STRPTIME_STD_A = 0x6CF // 1743 + SYS___WCSFTIME_A = 0x6D0 // 1744 + SYS___WCSFTIME_STD_A = 0x6D1 // 1745 + SYS_____SPAWN2_A = 0x6D2 // 1746 + SYS_____SPAWNP2_A = 0x6D3 // 1747 + SYS___SYNTAX_INIT_A = 0x6D4 // 1748 + SYS___TOD_INIT_A = 0x6D5 // 1749 + SYS___NL_CSINFO_A = 0x6D6 // 1750 + SYS___NL_MONINFO_A = 0x6D7 // 1751 + SYS___NL_NUMINFO_A = 0x6D8 // 1752 + SYS___NL_RESPINFO_A = 0x6D9 // 1753 + SYS___NL_TIMINFO_A = 0x6DA // 1754 + SYS___IF_NAMETOINDEX_A = 0x6DB // 1755 + SYS___IF_INDEXTONAME_A = 0x6DC // 1756 + SYS___PRINTF_A = 0x6DD // 1757 + SYS___ICONV_OPEN_A = 0x6DE // 1758 + SYS___DLLLOAD_A = 0x6DF // 1759 + SYS___DLLQUERYFN_A = 0x6E0 // 1760 + SYS___DLLQUERYVAR_A = 0x6E1 // 1761 + SYS_____CHATTR_A = 0x6E2 // 1762 + SYS___E2A_L = 0x6E3 // 1763 + SYS_____TOCCSID_A = 0x6E4 // 1764 + SYS_____TOCSNAME_A = 0x6E5 // 1765 + SYS_____CCSIDTYPE_A = 0x6E6 // 1766 + SYS_____CSNAMETYPE_A = 0x6E7 // 1767 + SYS___CHMOD_A = 0x6E8 // 1768 + SYS___MKDIR_A = 0x6E9 // 1769 + SYS___STAT_A = 0x6EA // 1770 + SYS___STAT_O_A = 0x6EB // 1771 + SYS___MKFIFO_A = 0x6EC // 1772 + SYS_____OPEN_STAT_A = 0x6ED // 1773 + SYS___LSTAT_A = 0x6EE // 1774 + SYS___LSTAT_O_A = 0x6EF // 1775 + SYS___MKNOD_A = 0x6F0 // 1776 + SYS___MOUNT_A = 0x6F1 // 1777 + SYS___UMOUNT_A = 0x6F2 // 1778 + SYS___CHAUDIT_A = 0x6F4 // 1780 + SYS___W_GETMNTENT_A = 0x6F5 // 1781 + SYS___CREAT_A = 0x6F6 // 1782 + SYS___OPEN_A = 0x6F7 // 1783 + SYS___SETLOCALE_A = 0x6F9 // 1785 + SYS___FPRINTF_A = 0x6FA // 1786 + SYS___SPRINTF_A = 0x6FB // 1787 + SYS___VFPRINTF_A = 0x6FC // 1788 + SYS___VPRINTF_A = 0x6FD // 1789 + SYS___VSPRINTF_A = 0x6FE // 1790 + SYS___VSWPRINTF_A = 0x6FF // 1791 + SYS___SWPRINTF_A = 0x700 // 1792 + SYS___FSCANF_A = 0x701 // 1793 + SYS___SCANF_A = 0x702 // 1794 + SYS___SSCANF_A = 0x703 // 1795 + SYS___SWSCANF_A = 0x704 // 1796 + SYS___ATOF_A = 0x705 // 1797 + SYS___ATOI_A = 0x706 // 1798 + SYS___ATOL_A = 0x707 // 1799 + SYS___STRTOD_A = 0x708 // 1800 + SYS___STRTOL_A = 0x709 // 1801 + SYS___STRTOUL_A = 0x70A // 1802 + SYS_____AE_CORRESTBL_QUERY_A = 0x70B // 1803 + SYS___A64L_A = 0x70C // 1804 + SYS___ECVT_A = 0x70D // 1805 + SYS___FCVT_A = 0x70E // 1806 + SYS___GCVT_A = 0x70F // 1807 + SYS___L64A_A = 0x710 // 1808 + SYS___STRERROR_A = 0x711 // 1809 + SYS___PERROR_A = 0x712 // 1810 + SYS___FETCH_A = 0x713 // 1811 + SYS___GETENV_A = 0x714 // 1812 + SYS___MKSTEMP_A = 0x717 // 1815 + SYS___PTSNAME_A = 0x718 // 1816 + SYS___PUTENV_A = 0x719 // 1817 + SYS___REALPATH_A = 0x71A // 1818 + SYS___SETENV_A = 0x71B // 1819 + SYS___SYSTEM_A = 0x71C // 1820 + SYS___GETOPT_A = 0x71D // 1821 + SYS___CATOPEN_A = 0x71E // 1822 + SYS___ACCESS_A = 0x71F // 1823 + SYS___CHDIR_A = 0x720 // 1824 + SYS___CHOWN_A = 0x721 // 1825 + SYS___CHROOT_A = 0x722 // 1826 + SYS___GETCWD_A = 0x723 // 1827 + SYS___GETWD_A = 0x724 // 1828 + SYS___LCHOWN_A = 0x725 // 1829 + SYS___LINK_A = 0x726 // 1830 + SYS___PATHCONF_A = 0x727 // 1831 + SYS___IF_NAMEINDEX_A = 0x728 // 1832 + SYS___READLINK_A = 0x729 // 1833 + SYS___RMDIR_A = 0x72A // 1834 + SYS___STATVFS_A = 0x72B // 1835 + SYS___SYMLINK_A = 0x72C // 1836 + SYS___TRUNCATE_A = 0x72D // 1837 + SYS___UNLINK_A = 0x72E // 1838 + SYS___GAI_STRERROR_A = 0x72F // 1839 + SYS___EXTLINK_NP_A = 0x730 // 1840 + SYS___ISALNUM_A = 0x731 // 1841 + SYS___ISALPHA_A = 0x732 // 1842 + SYS___A2E_S = 0x733 // 1843 + SYS___ISCNTRL_A = 0x734 // 1844 + SYS___ISDIGIT_A = 0x735 // 1845 + SYS___ISGRAPH_A = 0x736 // 1846 + SYS___ISLOWER_A = 0x737 // 1847 + SYS___ISPRINT_A = 0x738 // 1848 + SYS___ISPUNCT_A = 0x739 // 1849 + SYS___ISSPACE_A = 0x73A // 1850 + SYS___ISUPPER_A = 0x73B // 1851 + SYS___ISXDIGIT_A = 0x73C // 1852 + SYS___TOLOWER_A = 0x73D // 1853 + SYS___TOUPPER_A = 0x73E // 1854 + SYS___ISWALNUM_A = 0x73F // 1855 + SYS___ISWALPHA_A = 0x740 // 1856 + SYS___A2E_L = 0x741 // 1857 + SYS___ISWCNTRL_A = 0x742 // 1858 + SYS___ISWDIGIT_A = 0x743 // 1859 + SYS___ISWGRAPH_A = 0x744 // 1860 + SYS___ISWLOWER_A = 0x745 // 1861 + SYS___ISWPRINT_A = 0x746 // 1862 + SYS___ISWPUNCT_A = 0x747 // 1863 + SYS___ISWSPACE_A = 0x748 // 1864 + SYS___ISWUPPER_A = 0x749 // 1865 + SYS___ISWXDIGIT_A = 0x74A // 1866 + SYS___CONFSTR_A = 0x74B // 1867 + SYS___FTOK_A = 0x74C // 1868 + SYS___MKTEMP_A = 0x74D // 1869 + SYS___FDOPEN_A = 0x74E // 1870 + SYS___FLDATA_A = 0x74F // 1871 + SYS___REMOVE_A = 0x750 // 1872 + SYS___RENAME_A = 0x751 // 1873 + SYS___TMPNAM_A = 0x752 // 1874 + SYS___FOPEN_A = 0x753 // 1875 + SYS___FREOPEN_A = 0x754 // 1876 + SYS___CUSERID_A = 0x755 // 1877 + SYS___POPEN_A = 0x756 // 1878 + SYS___TEMPNAM_A = 0x757 // 1879 + SYS___FTW_A = 0x758 // 1880 + SYS___GETGRENT_A = 0x759 // 1881 + SYS___GETGRGID_A = 0x75A // 1882 + SYS___GETGRNAM_A = 0x75B // 1883 + SYS___GETGROUPSBYNAME_A = 0x75C // 1884 + SYS___GETHOSTENT_A = 0x75D // 1885 + SYS___GETHOSTNAME_A = 0x75E // 1886 + SYS___GETLOGIN_A = 0x75F // 1887 + SYS___INET_NTOP_A = 0x760 // 1888 + SYS___GETPASS_A = 0x761 // 1889 + SYS___GETPWENT_A = 0x762 // 1890 + SYS___GETPWNAM_A = 0x763 // 1891 + SYS___GETPWUID_A = 0x764 // 1892 + SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 // 1893 + SYS___CHECKSCHENV_A = 0x766 // 1894 + SYS___CONNECTSERVER_A = 0x767 // 1895 + SYS___CONNECTWORKMGR_A = 0x768 // 1896 + SYS_____CONSOLE_A = 0x769 // 1897 + SYS___CREATEWORKUNIT_A = 0x76A // 1898 + SYS___CTERMID_A = 0x76B // 1899 + SYS___FMTMSG_A = 0x76C // 1900 + SYS___INITGROUPS_A = 0x76D // 1901 + SYS_____LOGIN_A = 0x76E // 1902 + SYS___MSGRCV_A = 0x76F // 1903 + SYS___MSGSND_A = 0x770 // 1904 + SYS___MSGXRCV_A = 0x771 // 1905 + SYS___NFTW_A = 0x772 // 1906 + SYS_____PASSWD_A = 0x773 // 1907 + SYS___PTHREAD_SECURITY_NP_A = 0x774 // 1908 + SYS___QUERYMETRICS_A = 0x775 // 1909 + SYS___QUERYSCHENV = 0x776 // 1910 + SYS___READV_A = 0x777 // 1911 + SYS_____SERVER_CLASSIFY_A = 0x778 // 1912 + SYS_____SERVER_INIT_A = 0x779 // 1913 + SYS_____SERVER_PWU_A = 0x77A // 1914 + SYS___STRCASECMP_A = 0x77B // 1915 + SYS___STRNCASECMP_A = 0x77C // 1916 + SYS___TTYNAME_A = 0x77D // 1917 + SYS___UNAME_A = 0x77E // 1918 + SYS___UTIMES_A = 0x77F // 1919 + SYS___W_GETPSENT_A = 0x780 // 1920 + SYS___WRITEV_A = 0x781 // 1921 + SYS___W_STATFS_A = 0x782 // 1922 + SYS___W_STATVFS_A = 0x783 // 1923 + SYS___FPUTC_A = 0x784 // 1924 + SYS___PUTCHAR_A = 0x785 // 1925 + SYS___PUTS_A = 0x786 // 1926 + SYS___FGETS_A = 0x787 // 1927 + SYS___GETS_A = 0x788 // 1928 + SYS___FPUTS_A = 0x789 // 1929 + SYS___FREAD_A = 0x78A // 1930 + SYS___FWRITE_A = 0x78B // 1931 + SYS___OPEN_O_A = 0x78C // 1932 + SYS___ISASCII = 0x78D // 1933 + SYS___CREAT_O_A = 0x78E // 1934 + SYS___ENVNA = 0x78F // 1935 + SYS___PUTC_A = 0x790 // 1936 + SYS___AE_THREAD_SETMODE = 0x791 // 1937 + SYS___AE_THREAD_SWAPMODE = 0x792 // 1938 + SYS___GETNETBYADDR_A = 0x793 // 1939 + SYS___GETNETBYNAME_A = 0x794 // 1940 + SYS___GETNETENT_A = 0x795 // 1941 + SYS___GETPROTOBYNAME_A = 0x796 // 1942 + SYS___GETPROTOBYNUMBER_A = 0x797 // 1943 + SYS___GETPROTOENT_A = 0x798 // 1944 + SYS___GETSERVBYNAME_A = 0x799 // 1945 + SYS___GETSERVBYPORT_A = 0x79A // 1946 + SYS___GETSERVENT_A = 0x79B // 1947 + SYS___ASCTIME_A = 0x79C // 1948 + SYS___CTIME_A = 0x79D // 1949 + SYS___GETDATE_A = 0x79E // 1950 + SYS___TZSET_A = 0x79F // 1951 + SYS___UTIME_A = 0x7A0 // 1952 + SYS___ASCTIME_R_A = 0x7A1 // 1953 + SYS___CTIME_R_A = 0x7A2 // 1954 + SYS___STRTOLL_A = 0x7A3 // 1955 + SYS___STRTOULL_A = 0x7A4 // 1956 + SYS___FPUTWC_A = 0x7A5 // 1957 + SYS___PUTWC_A = 0x7A6 // 1958 + SYS___PUTWCHAR_A = 0x7A7 // 1959 + SYS___FPUTWS_A = 0x7A8 // 1960 + SYS___UNGETWC_A = 0x7A9 // 1961 + SYS___FGETWC_A = 0x7AA // 1962 + SYS___GETWC_A = 0x7AB // 1963 + SYS___GETWCHAR_A = 0x7AC // 1964 + SYS___FGETWS_A = 0x7AD // 1965 + SYS___GETTIMEOFDAY_A = 0x7AE // 1966 + SYS___GMTIME_A = 0x7AF // 1967 + SYS___GMTIME_R_A = 0x7B0 // 1968 + SYS___LOCALTIME_A = 0x7B1 // 1969 + SYS___LOCALTIME_R_A = 0x7B2 // 1970 + SYS___MKTIME_A = 0x7B3 // 1971 + SYS___TZZNA = 0x7B4 // 1972 + SYS_UNATEXIT = 0x7B5 // 1973 + SYS___CEE3DMP_A = 0x7B6 // 1974 + SYS___CDUMP_A = 0x7B7 // 1975 + SYS___CSNAP_A = 0x7B8 // 1976 + SYS___CTEST_A = 0x7B9 // 1977 + SYS___CTRACE_A = 0x7BA // 1978 + SYS___VSWPRNTF2_A = 0x7BB // 1979 + SYS___INET_PTON_A = 0x7BC // 1980 + SYS___SYSLOG_A = 0x7BD // 1981 + SYS___CRYPT_A = 0x7BE // 1982 + SYS_____OPENDIR2_A = 0x7BF // 1983 + SYS_____READDIR2_A = 0x7C0 // 1984 + SYS___OPENDIR_A = 0x7C2 // 1986 + SYS___READDIR_A = 0x7C3 // 1987 + SYS_PREAD = 0x7C7 // 1991 + SYS_PWRITE = 0x7C8 // 1992 + SYS_M_CREATE_LAYOUT = 0x7C9 // 1993 + SYS_M_DESTROY_LAYOUT = 0x7CA // 1994 + SYS_M_GETVALUES_LAYOUT = 0x7CB // 1995 + SYS_M_SETVALUES_LAYOUT = 0x7CC // 1996 + SYS_M_TRANSFORM_LAYOUT = 0x7CD // 1997 + SYS_M_WTRANSFORM_LAYOUT = 0x7CE // 1998 + SYS_FWPRINTF = 0x7D1 // 2001 + SYS_WPRINTF = 0x7D2 // 2002 + SYS_VFWPRINT = 0x7D3 // 2003 + SYS_VFWPRINTF = 0x7D3 // 2003 + SYS_VWPRINTF = 0x7D4 // 2004 + SYS_FWSCANF = 0x7D5 // 2005 + SYS_WSCANF = 0x7D6 // 2006 + SYS_WCTRANS = 0x7D7 // 2007 + SYS_TOWCTRAN = 0x7D8 // 2008 + SYS_TOWCTRANS = 0x7D8 // 2008 + SYS___WCSTOD_A = 0x7D9 // 2009 + SYS___WCSTOL_A = 0x7DA // 2010 + SYS___WCSTOUL_A = 0x7DB // 2011 + SYS___BASENAME_A = 0x7DC // 2012 + SYS___DIRNAME_A = 0x7DD // 2013 + SYS___GLOB_A = 0x7DE // 2014 + SYS_FWIDE = 0x7DF // 2015 + SYS___OSNAME = 0x7E0 // 2016 + SYS_____OSNAME_A = 0x7E1 // 2017 + SYS___BTOWC_A = 0x7E4 // 2020 + SYS___WCTOB_A = 0x7E5 // 2021 + SYS___DBM_OPEN_A = 0x7E6 // 2022 + SYS___VFPRINTF2_A = 0x7E7 // 2023 + SYS___VPRINTF2_A = 0x7E8 // 2024 + SYS___VSPRINTF2_A = 0x7E9 // 2025 + SYS___CEIL_H = 0x7EA // 2026 + SYS___FLOOR_H = 0x7EB // 2027 + SYS___MODF_H = 0x7EC // 2028 + SYS___FABS_H = 0x7ED // 2029 + SYS___J0_H = 0x7EE // 2030 + SYS___J1_H = 0x7EF // 2031 + SYS___JN_H = 0x7F0 // 2032 + SYS___Y0_H = 0x7F1 // 2033 + SYS___Y1_H = 0x7F2 // 2034 + SYS___YN_H = 0x7F3 // 2035 + SYS___CEILF_H = 0x7F4 // 2036 + SYS___CEILL_H = 0x7F5 // 2037 + SYS___FLOORF_H = 0x7F6 // 2038 + SYS___FLOORL_H = 0x7F7 // 2039 + SYS___MODFF_H = 0x7F8 // 2040 + SYS___MODFL_H = 0x7F9 // 2041 + SYS___FABSF_H = 0x7FA // 2042 + SYS___FABSL_H = 0x7FB // 2043 + SYS___MALLOC24 = 0x7FC // 2044 + SYS___MALLOC31 = 0x7FD // 2045 + SYS_ACL_INIT = 0x7FE // 2046 + SYS_ACL_FREE = 0x7FF // 2047 + SYS_ACL_FIRST_ENTRY = 0x800 // 2048 + SYS_ACL_GET_ENTRY = 0x801 // 2049 + SYS_ACL_VALID = 0x802 // 2050 + SYS_ACL_CREATE_ENTRY = 0x803 // 2051 + SYS_ACL_DELETE_ENTRY = 0x804 // 2052 + SYS_ACL_UPDATE_ENTRY = 0x805 // 2053 + SYS_ACL_DELETE_FD = 0x806 // 2054 + SYS_ACL_DELETE_FILE = 0x807 // 2055 + SYS_ACL_GET_FD = 0x808 // 2056 + SYS_ACL_GET_FILE = 0x809 // 2057 + SYS_ACL_SET_FD = 0x80A // 2058 + SYS_ACL_SET_FILE = 0x80B // 2059 + SYS_ACL_FROM_TEXT = 0x80C // 2060 + SYS_ACL_TO_TEXT = 0x80D // 2061 + SYS_ACL_SORT = 0x80E // 2062 + SYS___SHUTDOWN_REGISTRATION = 0x80F // 2063 + SYS___ERFL_B = 0x810 // 2064 + SYS___ERFCL_B = 0x811 // 2065 + SYS___LGAMMAL_B = 0x812 // 2066 + SYS___SETHOOKEVENTS = 0x813 // 2067 + SYS_IF_NAMETOINDEX = 0x814 // 2068 + SYS_IF_INDEXTONAME = 0x815 // 2069 + SYS_IF_NAMEINDEX = 0x816 // 2070 + SYS_IF_FREENAMEINDEX = 0x817 // 2071 + SYS_GETADDRINFO = 0x818 // 2072 + SYS_GETNAMEINFO = 0x819 // 2073 + SYS_FREEADDRINFO = 0x81A // 2074 + SYS_GAI_STRERROR = 0x81B // 2075 + SYS_REXEC_AF = 0x81C // 2076 + SYS___POE = 0x81D // 2077 + SYS___DYNALLOC_A = 0x81F // 2079 + SYS___DYNFREE_A = 0x820 // 2080 + SYS___RES_QUERY_A = 0x821 // 2081 + SYS___RES_SEARCH_A = 0x822 // 2082 + SYS___RES_QUERYDOMAIN_A = 0x823 // 2083 + SYS___RES_MKQUERY_A = 0x824 // 2084 + SYS___RES_SEND_A = 0x825 // 2085 + SYS___DN_EXPAND_A = 0x826 // 2086 + SYS___DN_SKIPNAME_A = 0x827 // 2087 + SYS___DN_COMP_A = 0x828 // 2088 + SYS___DN_FIND_A = 0x829 // 2089 + SYS___NLIST_A = 0x82A // 2090 + SYS_____TCGETCP_A = 0x82B // 2091 + SYS_____TCSETCP_A = 0x82C // 2092 + SYS_____W_PIOCTL_A = 0x82E // 2094 + SYS___INET_ADDR_A = 0x82F // 2095 + SYS___INET_NTOA_A = 0x830 // 2096 + SYS___INET_NETWORK_A = 0x831 // 2097 + SYS___ACCEPT_A = 0x832 // 2098 + SYS___ACCEPT_AND_RECV_A = 0x833 // 2099 + SYS___BIND_A = 0x834 // 2100 + SYS___CONNECT_A = 0x835 // 2101 + SYS___GETPEERNAME_A = 0x836 // 2102 + SYS___GETSOCKNAME_A = 0x837 // 2103 + SYS___RECVFROM_A = 0x838 // 2104 + SYS___SENDTO_A = 0x839 // 2105 + SYS___SENDMSG_A = 0x83A // 2106 + SYS___RECVMSG_A = 0x83B // 2107 + SYS_____LCHATTR_A = 0x83C // 2108 + SYS___CABEND = 0x83D // 2109 + SYS___LE_CIB_GET = 0x83E // 2110 + SYS___SET_LAA_FOR_JIT = 0x83F // 2111 + SYS___LCHATTR = 0x840 // 2112 + SYS___WRITEDOWN = 0x841 // 2113 + SYS_PTHREAD_MUTEX_INIT2 = 0x842 // 2114 + SYS___ACOSHF_B = 0x843 // 2115 + SYS___ACOSHL_B = 0x844 // 2116 + SYS___ASINHF_B = 0x845 // 2117 + SYS___ASINHL_B = 0x846 // 2118 + SYS___ATANHF_B = 0x847 // 2119 + SYS___ATANHL_B = 0x848 // 2120 + SYS___CBRTF_B = 0x849 // 2121 + SYS___CBRTL_B = 0x84A // 2122 + SYS___COPYSIGNF_B = 0x84B // 2123 + SYS___COPYSIGNL_B = 0x84C // 2124 + SYS___COTANF_B = 0x84D // 2125 + SYS___COTAN_B = 0x84E // 2126 + SYS___COTANL_B = 0x84F // 2127 + SYS___EXP2F_B = 0x850 // 2128 + SYS___EXP2L_B = 0x851 // 2129 + SYS___EXPM1F_B = 0x852 // 2130 + SYS___EXPM1L_B = 0x853 // 2131 + SYS___FDIMF_B = 0x854 // 2132 + SYS___FDIM_B = 0x855 // 2133 + SYS___FDIML_B = 0x856 // 2134 + SYS___HYPOTF_B = 0x857 // 2135 + SYS___HYPOTL_B = 0x858 // 2136 + SYS___LOG1PF_B = 0x859 // 2137 + SYS___LOG1PL_B = 0x85A // 2138 + SYS___LOG2F_B = 0x85B // 2139 + SYS___LOG2_B = 0x85C // 2140 + SYS___LOG2L_B = 0x85D // 2141 + SYS___REMAINDERF_B = 0x85E // 2142 + SYS___REMAINDERL_B = 0x85F // 2143 + SYS___REMQUOF_B = 0x860 // 2144 + SYS___REMQUO_B = 0x861 // 2145 + SYS___REMQUOL_B = 0x862 // 2146 + SYS___TGAMMAF_B = 0x863 // 2147 + SYS___TGAMMA_B = 0x864 // 2148 + SYS___TGAMMAL_B = 0x865 // 2149 + SYS___TRUNCF_B = 0x866 // 2150 + SYS___TRUNC_B = 0x867 // 2151 + SYS___TRUNCL_B = 0x868 // 2152 + SYS___LGAMMAF_B = 0x869 // 2153 + SYS___LROUNDF_B = 0x86A // 2154 + SYS___LROUND_B = 0x86B // 2155 + SYS___ERFF_B = 0x86C // 2156 + SYS___ERFCF_B = 0x86D // 2157 + SYS_ACOSHF = 0x86E // 2158 + SYS_ACOSHL = 0x86F // 2159 + SYS_ASINHF = 0x870 // 2160 + SYS_ASINHL = 0x871 // 2161 + SYS_ATANHF = 0x872 // 2162 + SYS_ATANHL = 0x873 // 2163 + SYS_CBRTF = 0x874 // 2164 + SYS_CBRTL = 0x875 // 2165 + SYS_COPYSIGNF = 0x876 // 2166 + SYS_CPYSIGNF = 0x876 // 2166 + SYS_COPYSIGNL = 0x877 // 2167 + SYS_CPYSIGNL = 0x877 // 2167 + SYS_COTANF = 0x878 // 2168 + SYS___COTANF = 0x878 // 2168 + SYS_COTAN = 0x879 // 2169 + SYS___COTAN = 0x879 // 2169 + SYS_COTANL = 0x87A // 2170 + SYS___COTANL = 0x87A // 2170 + SYS_EXP2F = 0x87B // 2171 + SYS_EXP2L = 0x87C // 2172 + SYS_EXPM1F = 0x87D // 2173 + SYS_EXPM1L = 0x87E // 2174 + SYS_FDIMF = 0x87F // 2175 + SYS_FDIM = 0x881 // 2177 + SYS_FDIML = 0x882 // 2178 + SYS_HYPOTF = 0x883 // 2179 + SYS_HYPOTL = 0x884 // 2180 + SYS_LOG1PF = 0x885 // 2181 + SYS_LOG1PL = 0x886 // 2182 + SYS_LOG2F = 0x887 // 2183 + SYS_LOG2 = 0x888 // 2184 + SYS_LOG2L = 0x889 // 2185 + SYS_REMAINDERF = 0x88A // 2186 + SYS_REMAINDF = 0x88A // 2186 + SYS_REMAINDERL = 0x88B // 2187 + SYS_REMAINDL = 0x88B // 2187 + SYS_REMQUOF = 0x88C // 2188 + SYS_REMQUO = 0x88D // 2189 + SYS_REMQUOL = 0x88E // 2190 + SYS_TGAMMAF = 0x88F // 2191 + SYS_TGAMMA = 0x890 // 2192 + SYS_TGAMMAL = 0x891 // 2193 + SYS_TRUNCF = 0x892 // 2194 + SYS_TRUNC = 0x893 // 2195 + SYS_TRUNCL = 0x894 // 2196 + SYS_LGAMMAF = 0x895 // 2197 + SYS_LGAMMAL = 0x896 // 2198 + SYS_LROUNDF = 0x897 // 2199 + SYS_LROUND = 0x898 // 2200 + SYS_ERFF = 0x899 // 2201 + SYS_ERFL = 0x89A // 2202 + SYS_ERFCF = 0x89B // 2203 + SYS_ERFCL = 0x89C // 2204 + SYS___EXP2_B = 0x89D // 2205 + SYS_EXP2 = 0x89E // 2206 + SYS___FAR_JUMP = 0x89F // 2207 + SYS___TCGETATTR_A = 0x8A1 // 2209 + SYS___TCSETATTR_A = 0x8A2 // 2210 + SYS___SUPERKILL = 0x8A4 // 2212 + SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 // 2213 + SYS___LE_MSG_ADD_INSERT = 0x8A6 // 2214 + SYS___LE_MSG_GET = 0x8A7 // 2215 + SYS___LE_MSG_GET_AND_WRITE = 0x8A8 // 2216 + SYS___LE_MSG_WRITE = 0x8A9 // 2217 + SYS___ITOA = 0x8AA // 2218 + SYS___UTOA = 0x8AB // 2219 + SYS___LTOA = 0x8AC // 2220 + SYS___ULTOA = 0x8AD // 2221 + SYS___LLTOA = 0x8AE // 2222 + SYS___ULLTOA = 0x8AF // 2223 + SYS___ITOA_A = 0x8B0 // 2224 + SYS___UTOA_A = 0x8B1 // 2225 + SYS___LTOA_A = 0x8B2 // 2226 + SYS___ULTOA_A = 0x8B3 // 2227 + SYS___LLTOA_A = 0x8B4 // 2228 + SYS___ULLTOA_A = 0x8B5 // 2229 + SYS_____GETENV_A = 0x8C3 // 2243 + SYS___REXEC_A = 0x8C4 // 2244 + SYS___REXEC_AF_A = 0x8C5 // 2245 + SYS___GETUTXENT_A = 0x8C6 // 2246 + SYS___GETUTXID_A = 0x8C7 // 2247 + SYS___GETUTXLINE_A = 0x8C8 // 2248 + SYS___PUTUTXLINE_A = 0x8C9 // 2249 + SYS_____UTMPXNAME_A = 0x8CA // 2250 + SYS___PUTC_UNLOCKED_A = 0x8CB // 2251 + SYS___PUTCHAR_UNLOCKED_A = 0x8CC // 2252 + SYS___SNPRINTF_A = 0x8CD // 2253 + SYS___VSNPRINTF_A = 0x8CE // 2254 + SYS___DLOPEN_A = 0x8D0 // 2256 + SYS___DLSYM_A = 0x8D1 // 2257 + SYS___DLERROR_A = 0x8D2 // 2258 + SYS_FLOCKFILE = 0x8D3 // 2259 + SYS_FTRYLOCKFILE = 0x8D4 // 2260 + SYS_FUNLOCKFILE = 0x8D5 // 2261 + SYS_GETC_UNLOCKED = 0x8D6 // 2262 + SYS_GETCHAR_UNLOCKED = 0x8D7 // 2263 + SYS_PUTC_UNLOCKED = 0x8D8 // 2264 + SYS_PUTCHAR_UNLOCKED = 0x8D9 // 2265 + SYS_SNPRINTF = 0x8DA // 2266 + SYS_VSNPRINTF = 0x8DB // 2267 + SYS_DLOPEN = 0x8DD // 2269 + SYS_DLSYM = 0x8DE // 2270 + SYS_DLCLOSE = 0x8DF // 2271 + SYS_DLERROR = 0x8E0 // 2272 + SYS___SET_EXCEPTION_HANDLER = 0x8E2 // 2274 + SYS___RESET_EXCEPTION_HANDLER = 0x8E3 // 2275 + SYS___VHM_EVENT = 0x8E4 // 2276 + SYS___ABS_H = 0x8E6 // 2278 + SYS___ABSF_H = 0x8E7 // 2279 + SYS___ABSL_H = 0x8E8 // 2280 + SYS___ACOS_H = 0x8E9 // 2281 + SYS___ACOSF_H = 0x8EA // 2282 + SYS___ACOSL_H = 0x8EB // 2283 + SYS___ACOSH_H = 0x8EC // 2284 + SYS___ASIN_H = 0x8ED // 2285 + SYS___ASINF_H = 0x8EE // 2286 + SYS___ASINL_H = 0x8EF // 2287 + SYS___ASINH_H = 0x8F0 // 2288 + SYS___ATAN_H = 0x8F1 // 2289 + SYS___ATANF_H = 0x8F2 // 2290 + SYS___ATANL_H = 0x8F3 // 2291 + SYS___ATANH_H = 0x8F4 // 2292 + SYS___ATANHF_H = 0x8F5 // 2293 + SYS___ATANHL_H = 0x8F6 // 2294 + SYS___ATAN2_H = 0x8F7 // 2295 + SYS___ATAN2F_H = 0x8F8 // 2296 + SYS___ATAN2L_H = 0x8F9 // 2297 + SYS___CBRT_H = 0x8FA // 2298 + SYS___COPYSIGNF_H = 0x8FB // 2299 + SYS___COPYSIGNL_H = 0x8FC // 2300 + SYS___COS_H = 0x8FD // 2301 + SYS___COSF_H = 0x8FE // 2302 + SYS___COSL_H = 0x8FF // 2303 + SYS___COSHF_H = 0x900 // 2304 + SYS___COSHL_H = 0x901 // 2305 + SYS___COTAN_H = 0x902 // 2306 + SYS___COTANF_H = 0x903 // 2307 + SYS___COTANL_H = 0x904 // 2308 + SYS___ERF_H = 0x905 // 2309 + SYS___ERFF_H = 0x906 // 2310 + SYS___ERFL_H = 0x907 // 2311 + SYS___ERFC_H = 0x908 // 2312 + SYS___ERFCF_H = 0x909 // 2313 + SYS___ERFCL_H = 0x90A // 2314 + SYS___EXP_H = 0x90B // 2315 + SYS___EXPF_H = 0x90C // 2316 + SYS___EXPL_H = 0x90D // 2317 + SYS___EXPM1_H = 0x90E // 2318 + SYS___FDIM_H = 0x90F // 2319 + SYS___FDIMF_H = 0x910 // 2320 + SYS___FDIML_H = 0x911 // 2321 + SYS___FMOD_H = 0x912 // 2322 + SYS___FMODF_H = 0x913 // 2323 + SYS___FMODL_H = 0x914 // 2324 + SYS___GAMMA_H = 0x915 // 2325 + SYS___HYPOT_H = 0x916 // 2326 + SYS___ILOGB_H = 0x917 // 2327 + SYS___LGAMMA_H = 0x918 // 2328 + SYS___LGAMMAF_H = 0x919 // 2329 + SYS___LOG_H = 0x91A // 2330 + SYS___LOGF_H = 0x91B // 2331 + SYS___LOGL_H = 0x91C // 2332 + SYS___LOGB_H = 0x91D // 2333 + SYS___LOG2_H = 0x91E // 2334 + SYS___LOG2F_H = 0x91F // 2335 + SYS___LOG2L_H = 0x920 // 2336 + SYS___LOG1P_H = 0x921 // 2337 + SYS___LOG10_H = 0x922 // 2338 + SYS___LOG10F_H = 0x923 // 2339 + SYS___LOG10L_H = 0x924 // 2340 + SYS___LROUND_H = 0x925 // 2341 + SYS___LROUNDF_H = 0x926 // 2342 + SYS___NEXTAFTER_H = 0x927 // 2343 + SYS___POW_H = 0x928 // 2344 + SYS___POWF_H = 0x929 // 2345 + SYS___POWL_H = 0x92A // 2346 + SYS___REMAINDER_H = 0x92B // 2347 + SYS___RINT_H = 0x92C // 2348 + SYS___SCALB_H = 0x92D // 2349 + SYS___SIN_H = 0x92E // 2350 + SYS___SINF_H = 0x92F // 2351 + SYS___SINL_H = 0x930 // 2352 + SYS___SINH_H = 0x931 // 2353 + SYS___SINHF_H = 0x932 // 2354 + SYS___SINHL_H = 0x933 // 2355 + SYS___SQRT_H = 0x934 // 2356 + SYS___SQRTF_H = 0x935 // 2357 + SYS___SQRTL_H = 0x936 // 2358 + SYS___TAN_H = 0x937 // 2359 + SYS___TANF_H = 0x938 // 2360 + SYS___TANL_H = 0x939 // 2361 + SYS___TANH_H = 0x93A // 2362 + SYS___TANHF_H = 0x93B // 2363 + SYS___TANHL_H = 0x93C // 2364 + SYS___TGAMMA_H = 0x93D // 2365 + SYS___TGAMMAF_H = 0x93E // 2366 + SYS___TRUNC_H = 0x93F // 2367 + SYS___TRUNCF_H = 0x940 // 2368 + SYS___TRUNCL_H = 0x941 // 2369 + SYS___COSH_H = 0x942 // 2370 + SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 // 2371 + SYS_VFSCANF = 0x944 // 2372 + SYS_VSCANF = 0x946 // 2374 + SYS_VSSCANF = 0x948 // 2376 + SYS_VFWSCANF = 0x94A // 2378 + SYS_VWSCANF = 0x94C // 2380 + SYS_VSWSCANF = 0x94E // 2382 + SYS_IMAXABS = 0x950 // 2384 + SYS_IMAXDIV = 0x951 // 2385 + SYS_STRTOIMAX = 0x952 // 2386 + SYS_STRTOUMAX = 0x953 // 2387 + SYS_WCSTOIMAX = 0x954 // 2388 + SYS_WCSTOUMAX = 0x955 // 2389 + SYS_ATOLL = 0x956 // 2390 + SYS_STRTOF = 0x957 // 2391 + SYS_STRTOLD = 0x958 // 2392 + SYS_WCSTOF = 0x959 // 2393 + SYS_WCSTOLD = 0x95A // 2394 + SYS_INET6_RTH_SPACE = 0x95B // 2395 + SYS_INET6_RTH_INIT = 0x95C // 2396 + SYS_INET6_RTH_ADD = 0x95D // 2397 + SYS_INET6_RTH_REVERSE = 0x95E // 2398 + SYS_INET6_RTH_SEGMENTS = 0x95F // 2399 + SYS_INET6_RTH_GETADDR = 0x960 // 2400 + SYS_INET6_OPT_INIT = 0x961 // 2401 + SYS_INET6_OPT_APPEND = 0x962 // 2402 + SYS_INET6_OPT_FINISH = 0x963 // 2403 + SYS_INET6_OPT_SET_VAL = 0x964 // 2404 + SYS_INET6_OPT_NEXT = 0x965 // 2405 + SYS_INET6_OPT_FIND = 0x966 // 2406 + SYS_INET6_OPT_GET_VAL = 0x967 // 2407 + SYS___POW_I = 0x987 // 2439 + SYS___POW_I_B = 0x988 // 2440 + SYS___POW_I_H = 0x989 // 2441 + SYS___POW_II = 0x98A // 2442 + SYS___POW_II_B = 0x98B // 2443 + SYS___POW_II_H = 0x98C // 2444 + SYS_CABS = 0x98E // 2446 + SYS___CABS_B = 0x98F // 2447 + SYS___CABS_H = 0x990 // 2448 + SYS_CABSF = 0x991 // 2449 + SYS___CABSF_B = 0x992 // 2450 + SYS___CABSF_H = 0x993 // 2451 + SYS_CABSL = 0x994 // 2452 + SYS___CABSL_B = 0x995 // 2453 + SYS___CABSL_H = 0x996 // 2454 + SYS_CACOS = 0x997 // 2455 + SYS___CACOS_B = 0x998 // 2456 + SYS___CACOS_H = 0x999 // 2457 + SYS_CACOSF = 0x99A // 2458 + SYS___CACOSF_B = 0x99B // 2459 + SYS___CACOSF_H = 0x99C // 2460 + SYS_CACOSL = 0x99D // 2461 + SYS___CACOSL_B = 0x99E // 2462 + SYS___CACOSL_H = 0x99F // 2463 + SYS_CACOSH = 0x9A0 // 2464 + SYS___CACOSH_B = 0x9A1 // 2465 + SYS___CACOSH_H = 0x9A2 // 2466 + SYS_CACOSHF = 0x9A3 // 2467 + SYS___CACOSHF_B = 0x9A4 // 2468 + SYS___CACOSHF_H = 0x9A5 // 2469 + SYS_CACOSHL = 0x9A6 // 2470 + SYS___CACOSHL_B = 0x9A7 // 2471 + SYS___CACOSHL_H = 0x9A8 // 2472 + SYS_CARG = 0x9A9 // 2473 + SYS___CARG_B = 0x9AA // 2474 + SYS___CARG_H = 0x9AB // 2475 + SYS_CARGF = 0x9AC // 2476 + SYS___CARGF_B = 0x9AD // 2477 + SYS___CARGF_H = 0x9AE // 2478 + SYS_CARGL = 0x9AF // 2479 + SYS___CARGL_B = 0x9B0 // 2480 + SYS___CARGL_H = 0x9B1 // 2481 + SYS_CASIN = 0x9B2 // 2482 + SYS___CASIN_B = 0x9B3 // 2483 + SYS___CASIN_H = 0x9B4 // 2484 + SYS_CASINF = 0x9B5 // 2485 + SYS___CASINF_B = 0x9B6 // 2486 + SYS___CASINF_H = 0x9B7 // 2487 + SYS_CASINL = 0x9B8 // 2488 + SYS___CASINL_B = 0x9B9 // 2489 + SYS___CASINL_H = 0x9BA // 2490 + SYS_CASINH = 0x9BB // 2491 + SYS___CASINH_B = 0x9BC // 2492 + SYS___CASINH_H = 0x9BD // 2493 + SYS_CASINHF = 0x9BE // 2494 + SYS___CASINHF_B = 0x9BF // 2495 + SYS___CASINHF_H = 0x9C0 // 2496 + SYS_CASINHL = 0x9C1 // 2497 + SYS___CASINHL_B = 0x9C2 // 2498 + SYS___CASINHL_H = 0x9C3 // 2499 + SYS_CATAN = 0x9C4 // 2500 + SYS___CATAN_B = 0x9C5 // 2501 + SYS___CATAN_H = 0x9C6 // 2502 + SYS_CATANF = 0x9C7 // 2503 + SYS___CATANF_B = 0x9C8 // 2504 + SYS___CATANF_H = 0x9C9 // 2505 + SYS_CATANL = 0x9CA // 2506 + SYS___CATANL_B = 0x9CB // 2507 + SYS___CATANL_H = 0x9CC // 2508 + SYS_CATANH = 0x9CD // 2509 + SYS___CATANH_B = 0x9CE // 2510 + SYS___CATANH_H = 0x9CF // 2511 + SYS_CATANHF = 0x9D0 // 2512 + SYS___CATANHF_B = 0x9D1 // 2513 + SYS___CATANHF_H = 0x9D2 // 2514 + SYS_CATANHL = 0x9D3 // 2515 + SYS___CATANHL_B = 0x9D4 // 2516 + SYS___CATANHL_H = 0x9D5 // 2517 + SYS_CCOS = 0x9D6 // 2518 + SYS___CCOS_B = 0x9D7 // 2519 + SYS___CCOS_H = 0x9D8 // 2520 + SYS_CCOSF = 0x9D9 // 2521 + SYS___CCOSF_B = 0x9DA // 2522 + SYS___CCOSF_H = 0x9DB // 2523 + SYS_CCOSL = 0x9DC // 2524 + SYS___CCOSL_B = 0x9DD // 2525 + SYS___CCOSL_H = 0x9DE // 2526 + SYS_CCOSH = 0x9DF // 2527 + SYS___CCOSH_B = 0x9E0 // 2528 + SYS___CCOSH_H = 0x9E1 // 2529 + SYS_CCOSHF = 0x9E2 // 2530 + SYS___CCOSHF_B = 0x9E3 // 2531 + SYS___CCOSHF_H = 0x9E4 // 2532 + SYS_CCOSHL = 0x9E5 // 2533 + SYS___CCOSHL_B = 0x9E6 // 2534 + SYS___CCOSHL_H = 0x9E7 // 2535 + SYS_CEXP = 0x9E8 // 2536 + SYS___CEXP_B = 0x9E9 // 2537 + SYS___CEXP_H = 0x9EA // 2538 + SYS_CEXPF = 0x9EB // 2539 + SYS___CEXPF_B = 0x9EC // 2540 + SYS___CEXPF_H = 0x9ED // 2541 + SYS_CEXPL = 0x9EE // 2542 + SYS___CEXPL_B = 0x9EF // 2543 + SYS___CEXPL_H = 0x9F0 // 2544 + SYS_CIMAG = 0x9F1 // 2545 + SYS___CIMAG_B = 0x9F2 // 2546 + SYS___CIMAG_H = 0x9F3 // 2547 + SYS_CIMAGF = 0x9F4 // 2548 + SYS___CIMAGF_B = 0x9F5 // 2549 + SYS___CIMAGF_H = 0x9F6 // 2550 + SYS_CIMAGL = 0x9F7 // 2551 + SYS___CIMAGL_B = 0x9F8 // 2552 + SYS___CIMAGL_H = 0x9F9 // 2553 + SYS___CLOG = 0x9FA // 2554 + SYS___CLOG_B = 0x9FB // 2555 + SYS___CLOG_H = 0x9FC // 2556 + SYS_CLOGF = 0x9FD // 2557 + SYS___CLOGF_B = 0x9FE // 2558 + SYS___CLOGF_H = 0x9FF // 2559 + SYS_CLOGL = 0xA00 // 2560 + SYS___CLOGL_B = 0xA01 // 2561 + SYS___CLOGL_H = 0xA02 // 2562 + SYS_CONJ = 0xA03 // 2563 + SYS___CONJ_B = 0xA04 // 2564 + SYS___CONJ_H = 0xA05 // 2565 + SYS_CONJF = 0xA06 // 2566 + SYS___CONJF_B = 0xA07 // 2567 + SYS___CONJF_H = 0xA08 // 2568 + SYS_CONJL = 0xA09 // 2569 + SYS___CONJL_B = 0xA0A // 2570 + SYS___CONJL_H = 0xA0B // 2571 + SYS_CPOW = 0xA0C // 2572 + SYS___CPOW_B = 0xA0D // 2573 + SYS___CPOW_H = 0xA0E // 2574 + SYS_CPOWF = 0xA0F // 2575 + SYS___CPOWF_B = 0xA10 // 2576 + SYS___CPOWF_H = 0xA11 // 2577 + SYS_CPOWL = 0xA12 // 2578 + SYS___CPOWL_B = 0xA13 // 2579 + SYS___CPOWL_H = 0xA14 // 2580 + SYS_CPROJ = 0xA15 // 2581 + SYS___CPROJ_B = 0xA16 // 2582 + SYS___CPROJ_H = 0xA17 // 2583 + SYS_CPROJF = 0xA18 // 2584 + SYS___CPROJF_B = 0xA19 // 2585 + SYS___CPROJF_H = 0xA1A // 2586 + SYS_CPROJL = 0xA1B // 2587 + SYS___CPROJL_B = 0xA1C // 2588 + SYS___CPROJL_H = 0xA1D // 2589 + SYS_CREAL = 0xA1E // 2590 + SYS___CREAL_B = 0xA1F // 2591 + SYS___CREAL_H = 0xA20 // 2592 + SYS_CREALF = 0xA21 // 2593 + SYS___CREALF_B = 0xA22 // 2594 + SYS___CREALF_H = 0xA23 // 2595 + SYS_CREALL = 0xA24 // 2596 + SYS___CREALL_B = 0xA25 // 2597 + SYS___CREALL_H = 0xA26 // 2598 + SYS_CSIN = 0xA27 // 2599 + SYS___CSIN_B = 0xA28 // 2600 + SYS___CSIN_H = 0xA29 // 2601 + SYS_CSINF = 0xA2A // 2602 + SYS___CSINF_B = 0xA2B // 2603 + SYS___CSINF_H = 0xA2C // 2604 + SYS_CSINL = 0xA2D // 2605 + SYS___CSINL_B = 0xA2E // 2606 + SYS___CSINL_H = 0xA2F // 2607 + SYS_CSINH = 0xA30 // 2608 + SYS___CSINH_B = 0xA31 // 2609 + SYS___CSINH_H = 0xA32 // 2610 + SYS_CSINHF = 0xA33 // 2611 + SYS___CSINHF_B = 0xA34 // 2612 + SYS___CSINHF_H = 0xA35 // 2613 + SYS_CSINHL = 0xA36 // 2614 + SYS___CSINHL_B = 0xA37 // 2615 + SYS___CSINHL_H = 0xA38 // 2616 + SYS_CSQRT = 0xA39 // 2617 + SYS___CSQRT_B = 0xA3A // 2618 + SYS___CSQRT_H = 0xA3B // 2619 + SYS_CSQRTF = 0xA3C // 2620 + SYS___CSQRTF_B = 0xA3D // 2621 + SYS___CSQRTF_H = 0xA3E // 2622 + SYS_CSQRTL = 0xA3F // 2623 + SYS___CSQRTL_B = 0xA40 // 2624 + SYS___CSQRTL_H = 0xA41 // 2625 + SYS_CTAN = 0xA42 // 2626 + SYS___CTAN_B = 0xA43 // 2627 + SYS___CTAN_H = 0xA44 // 2628 + SYS_CTANF = 0xA45 // 2629 + SYS___CTANF_B = 0xA46 // 2630 + SYS___CTANF_H = 0xA47 // 2631 + SYS_CTANL = 0xA48 // 2632 + SYS___CTANL_B = 0xA49 // 2633 + SYS___CTANL_H = 0xA4A // 2634 + SYS_CTANH = 0xA4B // 2635 + SYS___CTANH_B = 0xA4C // 2636 + SYS___CTANH_H = 0xA4D // 2637 + SYS_CTANHF = 0xA4E // 2638 + SYS___CTANHF_B = 0xA4F // 2639 + SYS___CTANHF_H = 0xA50 // 2640 + SYS_CTANHL = 0xA51 // 2641 + SYS___CTANHL_B = 0xA52 // 2642 + SYS___CTANHL_H = 0xA53 // 2643 + SYS___ACOSHF_H = 0xA54 // 2644 + SYS___ACOSHL_H = 0xA55 // 2645 + SYS___ASINHF_H = 0xA56 // 2646 + SYS___ASINHL_H = 0xA57 // 2647 + SYS___CBRTF_H = 0xA58 // 2648 + SYS___CBRTL_H = 0xA59 // 2649 + SYS___COPYSIGN_B = 0xA5A // 2650 + SYS___EXPM1F_H = 0xA5B // 2651 + SYS___EXPM1L_H = 0xA5C // 2652 + SYS___EXP2_H = 0xA5D // 2653 + SYS___EXP2F_H = 0xA5E // 2654 + SYS___EXP2L_H = 0xA5F // 2655 + SYS___LOG1PF_H = 0xA60 // 2656 + SYS___LOG1PL_H = 0xA61 // 2657 + SYS___LGAMMAL_H = 0xA62 // 2658 + SYS_FMA = 0xA63 // 2659 + SYS___FMA_B = 0xA64 // 2660 + SYS___FMA_H = 0xA65 // 2661 + SYS_FMAF = 0xA66 // 2662 + SYS___FMAF_B = 0xA67 // 2663 + SYS___FMAF_H = 0xA68 // 2664 + SYS_FMAL = 0xA69 // 2665 + SYS___FMAL_B = 0xA6A // 2666 + SYS___FMAL_H = 0xA6B // 2667 + SYS_FMAX = 0xA6C // 2668 + SYS___FMAX_B = 0xA6D // 2669 + SYS___FMAX_H = 0xA6E // 2670 + SYS_FMAXF = 0xA6F // 2671 + SYS___FMAXF_B = 0xA70 // 2672 + SYS___FMAXF_H = 0xA71 // 2673 + SYS_FMAXL = 0xA72 // 2674 + SYS___FMAXL_B = 0xA73 // 2675 + SYS___FMAXL_H = 0xA74 // 2676 + SYS_FMIN = 0xA75 // 2677 + SYS___FMIN_B = 0xA76 // 2678 + SYS___FMIN_H = 0xA77 // 2679 + SYS_FMINF = 0xA78 // 2680 + SYS___FMINF_B = 0xA79 // 2681 + SYS___FMINF_H = 0xA7A // 2682 + SYS_FMINL = 0xA7B // 2683 + SYS___FMINL_B = 0xA7C // 2684 + SYS___FMINL_H = 0xA7D // 2685 + SYS_ILOGBF = 0xA7E // 2686 + SYS___ILOGBF_B = 0xA7F // 2687 + SYS___ILOGBF_H = 0xA80 // 2688 + SYS_ILOGBL = 0xA81 // 2689 + SYS___ILOGBL_B = 0xA82 // 2690 + SYS___ILOGBL_H = 0xA83 // 2691 + SYS_LLRINT = 0xA84 // 2692 + SYS___LLRINT_B = 0xA85 // 2693 + SYS___LLRINT_H = 0xA86 // 2694 + SYS_LLRINTF = 0xA87 // 2695 + SYS___LLRINTF_B = 0xA88 // 2696 + SYS___LLRINTF_H = 0xA89 // 2697 + SYS_LLRINTL = 0xA8A // 2698 + SYS___LLRINTL_B = 0xA8B // 2699 + SYS___LLRINTL_H = 0xA8C // 2700 + SYS_LLROUND = 0xA8D // 2701 + SYS___LLROUND_B = 0xA8E // 2702 + SYS___LLROUND_H = 0xA8F // 2703 + SYS_LLROUNDF = 0xA90 // 2704 + SYS___LLROUNDF_B = 0xA91 // 2705 + SYS___LLROUNDF_H = 0xA92 // 2706 + SYS_LLROUNDL = 0xA93 // 2707 + SYS___LLROUNDL_B = 0xA94 // 2708 + SYS___LLROUNDL_H = 0xA95 // 2709 + SYS_LOGBF = 0xA96 // 2710 + SYS___LOGBF_B = 0xA97 // 2711 + SYS___LOGBF_H = 0xA98 // 2712 + SYS_LOGBL = 0xA99 // 2713 + SYS___LOGBL_B = 0xA9A // 2714 + SYS___LOGBL_H = 0xA9B // 2715 + SYS_LRINT = 0xA9C // 2716 + SYS___LRINT_B = 0xA9D // 2717 + SYS___LRINT_H = 0xA9E // 2718 + SYS_LRINTF = 0xA9F // 2719 + SYS___LRINTF_B = 0xAA0 // 2720 + SYS___LRINTF_H = 0xAA1 // 2721 + SYS_LRINTL = 0xAA2 // 2722 + SYS___LRINTL_B = 0xAA3 // 2723 + SYS___LRINTL_H = 0xAA4 // 2724 + SYS_LROUNDL = 0xAA5 // 2725 + SYS___LROUNDL_B = 0xAA6 // 2726 + SYS___LROUNDL_H = 0xAA7 // 2727 + SYS_NAN = 0xAA8 // 2728 + SYS___NAN_B = 0xAA9 // 2729 + SYS_NANF = 0xAAA // 2730 + SYS___NANF_B = 0xAAB // 2731 + SYS_NANL = 0xAAC // 2732 + SYS___NANL_B = 0xAAD // 2733 + SYS_NEARBYINT = 0xAAE // 2734 + SYS___NEARBYINT_B = 0xAAF // 2735 + SYS___NEARBYINT_H = 0xAB0 // 2736 + SYS_NEARBYINTF = 0xAB1 // 2737 + SYS___NEARBYINTF_B = 0xAB2 // 2738 + SYS___NEARBYINTF_H = 0xAB3 // 2739 + SYS_NEARBYINTL = 0xAB4 // 2740 + SYS___NEARBYINTL_B = 0xAB5 // 2741 + SYS___NEARBYINTL_H = 0xAB6 // 2742 + SYS_NEXTAFTERF = 0xAB7 // 2743 + SYS___NEXTAFTERF_B = 0xAB8 // 2744 + SYS___NEXTAFTERF_H = 0xAB9 // 2745 + SYS_NEXTAFTERL = 0xABA // 2746 + SYS___NEXTAFTERL_B = 0xABB // 2747 + SYS___NEXTAFTERL_H = 0xABC // 2748 + SYS_NEXTTOWARD = 0xABD // 2749 + SYS___NEXTTOWARD_B = 0xABE // 2750 + SYS___NEXTTOWARD_H = 0xABF // 2751 + SYS_NEXTTOWARDF = 0xAC0 // 2752 + SYS___NEXTTOWARDF_B = 0xAC1 // 2753 + SYS___NEXTTOWARDF_H = 0xAC2 // 2754 + SYS_NEXTTOWARDL = 0xAC3 // 2755 + SYS___NEXTTOWARDL_B = 0xAC4 // 2756 + SYS___NEXTTOWARDL_H = 0xAC5 // 2757 + SYS___REMAINDERF_H = 0xAC6 // 2758 + SYS___REMAINDERL_H = 0xAC7 // 2759 + SYS___REMQUO_H = 0xAC8 // 2760 + SYS___REMQUOF_H = 0xAC9 // 2761 + SYS___REMQUOL_H = 0xACA // 2762 + SYS_RINTF = 0xACB // 2763 + SYS___RINTF_B = 0xACC // 2764 + SYS_RINTL = 0xACD // 2765 + SYS___RINTL_B = 0xACE // 2766 + SYS_ROUND = 0xACF // 2767 + SYS___ROUND_B = 0xAD0 // 2768 + SYS___ROUND_H = 0xAD1 // 2769 + SYS_ROUNDF = 0xAD2 // 2770 + SYS___ROUNDF_B = 0xAD3 // 2771 + SYS___ROUNDF_H = 0xAD4 // 2772 + SYS_ROUNDL = 0xAD5 // 2773 + SYS___ROUNDL_B = 0xAD6 // 2774 + SYS___ROUNDL_H = 0xAD7 // 2775 + SYS_SCALBLN = 0xAD8 // 2776 + SYS___SCALBLN_B = 0xAD9 // 2777 + SYS___SCALBLN_H = 0xADA // 2778 + SYS_SCALBLNF = 0xADB // 2779 + SYS___SCALBLNF_B = 0xADC // 2780 + SYS___SCALBLNF_H = 0xADD // 2781 + SYS_SCALBLNL = 0xADE // 2782 + SYS___SCALBLNL_B = 0xADF // 2783 + SYS___SCALBLNL_H = 0xAE0 // 2784 + SYS___SCALBN_B = 0xAE1 // 2785 + SYS___SCALBN_H = 0xAE2 // 2786 + SYS_SCALBNF = 0xAE3 // 2787 + SYS___SCALBNF_B = 0xAE4 // 2788 + SYS___SCALBNF_H = 0xAE5 // 2789 + SYS_SCALBNL = 0xAE6 // 2790 + SYS___SCALBNL_B = 0xAE7 // 2791 + SYS___SCALBNL_H = 0xAE8 // 2792 + SYS___TGAMMAL_H = 0xAE9 // 2793 + SYS_FECLEAREXCEPT = 0xAEA // 2794 + SYS_FEGETENV = 0xAEB // 2795 + SYS_FEGETEXCEPTFLAG = 0xAEC // 2796 + SYS_FEGETROUND = 0xAED // 2797 + SYS_FEHOLDEXCEPT = 0xAEE // 2798 + SYS_FERAISEEXCEPT = 0xAEF // 2799 + SYS_FESETENV = 0xAF0 // 2800 + SYS_FESETEXCEPTFLAG = 0xAF1 // 2801 + SYS_FESETROUND = 0xAF2 // 2802 + SYS_FETESTEXCEPT = 0xAF3 // 2803 + SYS_FEUPDATEENV = 0xAF4 // 2804 + SYS___COPYSIGN_H = 0xAF5 // 2805 + SYS___HYPOTF_H = 0xAF6 // 2806 + SYS___HYPOTL_H = 0xAF7 // 2807 + SYS___CLASS = 0xAFA // 2810 + SYS___CLASS_B = 0xAFB // 2811 + SYS___CLASS_H = 0xAFC // 2812 + SYS___ISBLANK_A = 0xB2E // 2862 + SYS___ISWBLANK_A = 0xB2F // 2863 + SYS___LROUND_FIXUP = 0xB30 // 2864 + SYS___LROUNDF_FIXUP = 0xB31 // 2865 + SYS_SCHED_YIELD = 0xB32 // 2866 + SYS_STRERROR_R = 0xB33 // 2867 + SYS_UNSETENV = 0xB34 // 2868 + SYS___LGAMMA_H_C99 = 0xB38 // 2872 + SYS___LGAMMA_B_C99 = 0xB39 // 2873 + SYS___LGAMMA_R_C99 = 0xB3A // 2874 + SYS___FTELL2 = 0xB3B // 2875 + SYS___FSEEK2 = 0xB3C // 2876 + SYS___STATIC_REINIT = 0xB3D // 2877 + SYS_PTHREAD_ATTR_GETSTACK = 0xB3E // 2878 + SYS_PTHREAD_ATTR_SETSTACK = 0xB3F // 2879 + SYS___TGAMMA_H_C99 = 0xB78 // 2936 + SYS___TGAMMAF_H_C99 = 0xB79 // 2937 + SYS___LE_TRACEBACK = 0xB7A // 2938 + SYS___MUST_STAY_CLEAN = 0xB7C // 2940 + SYS___O_ENV = 0xB7D // 2941 + SYS_ACOSD32 = 0xB7E // 2942 + SYS_ACOSD64 = 0xB7F // 2943 + SYS_ACOSD128 = 0xB80 // 2944 + SYS_ACOSHD32 = 0xB81 // 2945 + SYS_ACOSHD64 = 0xB82 // 2946 + SYS_ACOSHD128 = 0xB83 // 2947 + SYS_ASIND32 = 0xB84 // 2948 + SYS_ASIND64 = 0xB85 // 2949 + SYS_ASIND128 = 0xB86 // 2950 + SYS_ASINHD32 = 0xB87 // 2951 + SYS_ASINHD64 = 0xB88 // 2952 + SYS_ASINHD128 = 0xB89 // 2953 + SYS_ATAND32 = 0xB8A // 2954 + SYS_ATAND64 = 0xB8B // 2955 + SYS_ATAND128 = 0xB8C // 2956 + SYS_ATAN2D32 = 0xB8D // 2957 + SYS_ATAN2D64 = 0xB8E // 2958 + SYS_ATAN2D128 = 0xB8F // 2959 + SYS_ATANHD32 = 0xB90 // 2960 + SYS_ATANHD64 = 0xB91 // 2961 + SYS_ATANHD128 = 0xB92 // 2962 + SYS_CBRTD32 = 0xB93 // 2963 + SYS_CBRTD64 = 0xB94 // 2964 + SYS_CBRTD128 = 0xB95 // 2965 + SYS_CEILD32 = 0xB96 // 2966 + SYS_CEILD64 = 0xB97 // 2967 + SYS_CEILD128 = 0xB98 // 2968 + SYS___CLASS2 = 0xB99 // 2969 + SYS___CLASS2_B = 0xB9A // 2970 + SYS___CLASS2_H = 0xB9B // 2971 + SYS_COPYSIGND32 = 0xB9C // 2972 + SYS_COPYSIGND64 = 0xB9D // 2973 + SYS_COPYSIGND128 = 0xB9E // 2974 + SYS_COSD32 = 0xB9F // 2975 + SYS_COSD64 = 0xBA0 // 2976 + SYS_COSD128 = 0xBA1 // 2977 + SYS_COSHD32 = 0xBA2 // 2978 + SYS_COSHD64 = 0xBA3 // 2979 + SYS_COSHD128 = 0xBA4 // 2980 + SYS_ERFD32 = 0xBA5 // 2981 + SYS_ERFD64 = 0xBA6 // 2982 + SYS_ERFD128 = 0xBA7 // 2983 + SYS_ERFCD32 = 0xBA8 // 2984 + SYS_ERFCD64 = 0xBA9 // 2985 + SYS_ERFCD128 = 0xBAA // 2986 + SYS_EXPD32 = 0xBAB // 2987 + SYS_EXPD64 = 0xBAC // 2988 + SYS_EXPD128 = 0xBAD // 2989 + SYS_EXP2D32 = 0xBAE // 2990 + SYS_EXP2D64 = 0xBAF // 2991 + SYS_EXP2D128 = 0xBB0 // 2992 + SYS_EXPM1D32 = 0xBB1 // 2993 + SYS_EXPM1D64 = 0xBB2 // 2994 + SYS_EXPM1D128 = 0xBB3 // 2995 + SYS_FABSD32 = 0xBB4 // 2996 + SYS_FABSD64 = 0xBB5 // 2997 + SYS_FABSD128 = 0xBB6 // 2998 + SYS_FDIMD32 = 0xBB7 // 2999 + SYS_FDIMD64 = 0xBB8 // 3000 + SYS_FDIMD128 = 0xBB9 // 3001 + SYS_FE_DEC_GETROUND = 0xBBA // 3002 + SYS_FE_DEC_SETROUND = 0xBBB // 3003 + SYS_FLOORD32 = 0xBBC // 3004 + SYS_FLOORD64 = 0xBBD // 3005 + SYS_FLOORD128 = 0xBBE // 3006 + SYS_FMAD32 = 0xBBF // 3007 + SYS_FMAD64 = 0xBC0 // 3008 + SYS_FMAD128 = 0xBC1 // 3009 + SYS_FMAXD32 = 0xBC2 // 3010 + SYS_FMAXD64 = 0xBC3 // 3011 + SYS_FMAXD128 = 0xBC4 // 3012 + SYS_FMIND32 = 0xBC5 // 3013 + SYS_FMIND64 = 0xBC6 // 3014 + SYS_FMIND128 = 0xBC7 // 3015 + SYS_FMODD32 = 0xBC8 // 3016 + SYS_FMODD64 = 0xBC9 // 3017 + SYS_FMODD128 = 0xBCA // 3018 + SYS___FP_CAST_D = 0xBCB // 3019 + SYS_FREXPD32 = 0xBCC // 3020 + SYS_FREXPD64 = 0xBCD // 3021 + SYS_FREXPD128 = 0xBCE // 3022 + SYS_HYPOTD32 = 0xBCF // 3023 + SYS_HYPOTD64 = 0xBD0 // 3024 + SYS_HYPOTD128 = 0xBD1 // 3025 + SYS_ILOGBD32 = 0xBD2 // 3026 + SYS_ILOGBD64 = 0xBD3 // 3027 + SYS_ILOGBD128 = 0xBD4 // 3028 + SYS_LDEXPD32 = 0xBD5 // 3029 + SYS_LDEXPD64 = 0xBD6 // 3030 + SYS_LDEXPD128 = 0xBD7 // 3031 + SYS_LGAMMAD32 = 0xBD8 // 3032 + SYS_LGAMMAD64 = 0xBD9 // 3033 + SYS_LGAMMAD128 = 0xBDA // 3034 + SYS_LLRINTD32 = 0xBDB // 3035 + SYS_LLRINTD64 = 0xBDC // 3036 + SYS_LLRINTD128 = 0xBDD // 3037 + SYS_LLROUNDD32 = 0xBDE // 3038 + SYS_LLROUNDD64 = 0xBDF // 3039 + SYS_LLROUNDD128 = 0xBE0 // 3040 + SYS_LOGD32 = 0xBE1 // 3041 + SYS_LOGD64 = 0xBE2 // 3042 + SYS_LOGD128 = 0xBE3 // 3043 + SYS_LOG10D32 = 0xBE4 // 3044 + SYS_LOG10D64 = 0xBE5 // 3045 + SYS_LOG10D128 = 0xBE6 // 3046 + SYS_LOG1PD32 = 0xBE7 // 3047 + SYS_LOG1PD64 = 0xBE8 // 3048 + SYS_LOG1PD128 = 0xBE9 // 3049 + SYS_LOG2D32 = 0xBEA // 3050 + SYS_LOG2D64 = 0xBEB // 3051 + SYS_LOG2D128 = 0xBEC // 3052 + SYS_LOGBD32 = 0xBED // 3053 + SYS_LOGBD64 = 0xBEE // 3054 + SYS_LOGBD128 = 0xBEF // 3055 + SYS_LRINTD32 = 0xBF0 // 3056 + SYS_LRINTD64 = 0xBF1 // 3057 + SYS_LRINTD128 = 0xBF2 // 3058 + SYS_LROUNDD32 = 0xBF3 // 3059 + SYS_LROUNDD64 = 0xBF4 // 3060 + SYS_LROUNDD128 = 0xBF5 // 3061 + SYS_MODFD32 = 0xBF6 // 3062 + SYS_MODFD64 = 0xBF7 // 3063 + SYS_MODFD128 = 0xBF8 // 3064 + SYS_NAND32 = 0xBF9 // 3065 + SYS_NAND64 = 0xBFA // 3066 + SYS_NAND128 = 0xBFB // 3067 + SYS_NEARBYINTD32 = 0xBFC // 3068 + SYS_NEARBYINTD64 = 0xBFD // 3069 + SYS_NEARBYINTD128 = 0xBFE // 3070 + SYS_NEXTAFTERD32 = 0xBFF // 3071 + SYS_NEXTAFTERD64 = 0xC00 // 3072 + SYS_NEXTAFTERD128 = 0xC01 // 3073 + SYS_NEXTTOWARDD32 = 0xC02 // 3074 + SYS_NEXTTOWARDD64 = 0xC03 // 3075 + SYS_NEXTTOWARDD128 = 0xC04 // 3076 + SYS_POWD32 = 0xC05 // 3077 + SYS_POWD64 = 0xC06 // 3078 + SYS_POWD128 = 0xC07 // 3079 + SYS_QUANTIZED32 = 0xC08 // 3080 + SYS_QUANTIZED64 = 0xC09 // 3081 + SYS_QUANTIZED128 = 0xC0A // 3082 + SYS_REMAINDERD32 = 0xC0B // 3083 + SYS_REMAINDERD64 = 0xC0C // 3084 + SYS_REMAINDERD128 = 0xC0D // 3085 + SYS___REMQUOD32 = 0xC0E // 3086 + SYS___REMQUOD64 = 0xC0F // 3087 + SYS___REMQUOD128 = 0xC10 // 3088 + SYS_RINTD32 = 0xC11 // 3089 + SYS_RINTD64 = 0xC12 // 3090 + SYS_RINTD128 = 0xC13 // 3091 + SYS_ROUNDD32 = 0xC14 // 3092 + SYS_ROUNDD64 = 0xC15 // 3093 + SYS_ROUNDD128 = 0xC16 // 3094 + SYS_SAMEQUANTUMD32 = 0xC17 // 3095 + SYS_SAMEQUANTUMD64 = 0xC18 // 3096 + SYS_SAMEQUANTUMD128 = 0xC19 // 3097 + SYS_SCALBLND32 = 0xC1A // 3098 + SYS_SCALBLND64 = 0xC1B // 3099 + SYS_SCALBLND128 = 0xC1C // 3100 + SYS_SCALBND32 = 0xC1D // 3101 + SYS_SCALBND64 = 0xC1E // 3102 + SYS_SCALBND128 = 0xC1F // 3103 + SYS_SIND32 = 0xC20 // 3104 + SYS_SIND64 = 0xC21 // 3105 + SYS_SIND128 = 0xC22 // 3106 + SYS_SINHD32 = 0xC23 // 3107 + SYS_SINHD64 = 0xC24 // 3108 + SYS_SINHD128 = 0xC25 // 3109 + SYS_SQRTD32 = 0xC26 // 3110 + SYS_SQRTD64 = 0xC27 // 3111 + SYS_SQRTD128 = 0xC28 // 3112 + SYS_STRTOD32 = 0xC29 // 3113 + SYS_STRTOD64 = 0xC2A // 3114 + SYS_STRTOD128 = 0xC2B // 3115 + SYS_TAND32 = 0xC2C // 3116 + SYS_TAND64 = 0xC2D // 3117 + SYS_TAND128 = 0xC2E // 3118 + SYS_TANHD32 = 0xC2F // 3119 + SYS_TANHD64 = 0xC30 // 3120 + SYS_TANHD128 = 0xC31 // 3121 + SYS_TGAMMAD32 = 0xC32 // 3122 + SYS_TGAMMAD64 = 0xC33 // 3123 + SYS_TGAMMAD128 = 0xC34 // 3124 + SYS_TRUNCD32 = 0xC3E // 3134 + SYS_TRUNCD64 = 0xC3F // 3135 + SYS_TRUNCD128 = 0xC40 // 3136 + SYS_WCSTOD32 = 0xC41 // 3137 + SYS_WCSTOD64 = 0xC42 // 3138 + SYS_WCSTOD128 = 0xC43 // 3139 + SYS___CODEPAGE_INFO = 0xC64 // 3172 + SYS_POSIX_OPENPT = 0xC66 // 3174 + SYS_PSELECT = 0xC67 // 3175 + SYS_SOCKATMARK = 0xC68 // 3176 + SYS_AIO_FSYNC = 0xC69 // 3177 + SYS_LIO_LISTIO = 0xC6A // 3178 + SYS___ATANPID32 = 0xC6B // 3179 + SYS___ATANPID64 = 0xC6C // 3180 + SYS___ATANPID128 = 0xC6D // 3181 + SYS___COSPID32 = 0xC6E // 3182 + SYS___COSPID64 = 0xC6F // 3183 + SYS___COSPID128 = 0xC70 // 3184 + SYS___SINPID32 = 0xC71 // 3185 + SYS___SINPID64 = 0xC72 // 3186 + SYS___SINPID128 = 0xC73 // 3187 + SYS_SETIPV4SOURCEFILTER = 0xC76 // 3190 + SYS_GETIPV4SOURCEFILTER = 0xC77 // 3191 + SYS_SETSOURCEFILTER = 0xC78 // 3192 + SYS_GETSOURCEFILTER = 0xC79 // 3193 + SYS_FWRITE_UNLOCKED = 0xC7A // 3194 + SYS_FREAD_UNLOCKED = 0xC7B // 3195 + SYS_FGETS_UNLOCKED = 0xC7C // 3196 + SYS_GETS_UNLOCKED = 0xC7D // 3197 + SYS_FPUTS_UNLOCKED = 0xC7E // 3198 + SYS_PUTS_UNLOCKED = 0xC7F // 3199 + SYS_FGETC_UNLOCKED = 0xC80 // 3200 + SYS_FPUTC_UNLOCKED = 0xC81 // 3201 + SYS_DLADDR = 0xC82 // 3202 + SYS_SHM_OPEN = 0xC8C // 3212 + SYS_SHM_UNLINK = 0xC8D // 3213 + SYS___CLASS2F = 0xC91 // 3217 + SYS___CLASS2L = 0xC92 // 3218 + SYS___CLASS2F_B = 0xC93 // 3219 + SYS___CLASS2F_H = 0xC94 // 3220 + SYS___CLASS2L_B = 0xC95 // 3221 + SYS___CLASS2L_H = 0xC96 // 3222 + SYS___CLASS2D32 = 0xC97 // 3223 + SYS___CLASS2D64 = 0xC98 // 3224 + SYS___CLASS2D128 = 0xC99 // 3225 + SYS___TOCSNAME2 = 0xC9A // 3226 + SYS___D1TOP = 0xC9B // 3227 + SYS___D2TOP = 0xC9C // 3228 + SYS___D4TOP = 0xC9D // 3229 + SYS___PTOD1 = 0xC9E // 3230 + SYS___PTOD2 = 0xC9F // 3231 + SYS___PTOD4 = 0xCA0 // 3232 + SYS_CLEARERR_UNLOCKED = 0xCA1 // 3233 + SYS_FDELREC_UNLOCKED = 0xCA2 // 3234 + SYS_FEOF_UNLOCKED = 0xCA3 // 3235 + SYS_FERROR_UNLOCKED = 0xCA4 // 3236 + SYS_FFLUSH_UNLOCKED = 0xCA5 // 3237 + SYS_FGETPOS_UNLOCKED = 0xCA6 // 3238 + SYS_FGETWC_UNLOCKED = 0xCA7 // 3239 + SYS_FGETWS_UNLOCKED = 0xCA8 // 3240 + SYS_FILENO_UNLOCKED = 0xCA9 // 3241 + SYS_FLDATA_UNLOCKED = 0xCAA // 3242 + SYS_FLOCATE_UNLOCKED = 0xCAB // 3243 + SYS_FPRINTF_UNLOCKED = 0xCAC // 3244 + SYS_FPUTWC_UNLOCKED = 0xCAD // 3245 + SYS_FPUTWS_UNLOCKED = 0xCAE // 3246 + SYS_FSCANF_UNLOCKED = 0xCAF // 3247 + SYS_FSEEK_UNLOCKED = 0xCB0 // 3248 + SYS_FSEEKO_UNLOCKED = 0xCB1 // 3249 + SYS_FSETPOS_UNLOCKED = 0xCB3 // 3251 + SYS_FTELL_UNLOCKED = 0xCB4 // 3252 + SYS_FTELLO_UNLOCKED = 0xCB5 // 3253 + SYS_FUPDATE_UNLOCKED = 0xCB7 // 3255 + SYS_FWIDE_UNLOCKED = 0xCB8 // 3256 + SYS_FWPRINTF_UNLOCKED = 0xCB9 // 3257 + SYS_FWSCANF_UNLOCKED = 0xCBA // 3258 + SYS_GETWC_UNLOCKED = 0xCBB // 3259 + SYS_GETWCHAR_UNLOCKED = 0xCBC // 3260 + SYS_PERROR_UNLOCKED = 0xCBD // 3261 + SYS_PRINTF_UNLOCKED = 0xCBE // 3262 + SYS_PUTWC_UNLOCKED = 0xCBF // 3263 + SYS_PUTWCHAR_UNLOCKED = 0xCC0 // 3264 + SYS_REWIND_UNLOCKED = 0xCC1 // 3265 + SYS_SCANF_UNLOCKED = 0xCC2 // 3266 + SYS_UNGETC_UNLOCKED = 0xCC3 // 3267 + SYS_UNGETWC_UNLOCKED = 0xCC4 // 3268 + SYS_VFPRINTF_UNLOCKED = 0xCC5 // 3269 + SYS_VFSCANF_UNLOCKED = 0xCC7 // 3271 + SYS_VFWPRINTF_UNLOCKED = 0xCC9 // 3273 + SYS_VFWSCANF_UNLOCKED = 0xCCB // 3275 + SYS_VPRINTF_UNLOCKED = 0xCCD // 3277 + SYS_VSCANF_UNLOCKED = 0xCCF // 3279 + SYS_VWPRINTF_UNLOCKED = 0xCD1 // 3281 + SYS_VWSCANF_UNLOCKED = 0xCD3 // 3283 + SYS_WPRINTF_UNLOCKED = 0xCD5 // 3285 + SYS_WSCANF_UNLOCKED = 0xCD6 // 3286 + SYS_ASCTIME64 = 0xCD7 // 3287 + SYS_ASCTIME64_R = 0xCD8 // 3288 + SYS_CTIME64 = 0xCD9 // 3289 + SYS_CTIME64_R = 0xCDA // 3290 + SYS_DIFFTIME64 = 0xCDB // 3291 + SYS_GMTIME64 = 0xCDC // 3292 + SYS_GMTIME64_R = 0xCDD // 3293 + SYS_LOCALTIME64 = 0xCDE // 3294 + SYS_LOCALTIME64_R = 0xCDF // 3295 + SYS_MKTIME64 = 0xCE0 // 3296 + SYS_TIME64 = 0xCE1 // 3297 + SYS___LOGIN_APPLID = 0xCE2 // 3298 + SYS___PASSWD_APPLID = 0xCE3 // 3299 + SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 // 3300 + SYS___GETTHENT = 0xCE5 // 3301 + SYS_FREEIFADDRS = 0xCE6 // 3302 + SYS_GETIFADDRS = 0xCE7 // 3303 + SYS_POSIX_FALLOCATE = 0xCE8 // 3304 + SYS_POSIX_MEMALIGN = 0xCE9 // 3305 + SYS_SIZEOF_ALLOC = 0xCEA // 3306 + SYS_RESIZE_ALLOC = 0xCEB // 3307 + SYS_FREAD_NOUPDATE = 0xCEC // 3308 + SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED // 3309 + SYS_FGETPOS64 = 0xCEE // 3310 + SYS_FSEEK64 = 0xCEF // 3311 + SYS_FSEEKO64 = 0xCF0 // 3312 + SYS_FSETPOS64 = 0xCF1 // 3313 + SYS_FTELL64 = 0xCF2 // 3314 + SYS_FTELLO64 = 0xCF3 // 3315 + SYS_FGETPOS64_UNLOCKED = 0xCF4 // 3316 + SYS_FSEEK64_UNLOCKED = 0xCF5 // 3317 + SYS_FSEEKO64_UNLOCKED = 0xCF6 // 3318 + SYS_FSETPOS64_UNLOCKED = 0xCF7 // 3319 + SYS_FTELL64_UNLOCKED = 0xCF8 // 3320 + SYS_FTELLO64_UNLOCKED = 0xCF9 // 3321 + SYS_FOPEN_UNLOCKED = 0xCFA // 3322 + SYS_FREOPEN_UNLOCKED = 0xCFB // 3323 + SYS_FDOPEN_UNLOCKED = 0xCFC // 3324 + SYS_TMPFILE_UNLOCKED = 0xCFD // 3325 + SYS___MOSERVICES = 0xD3D // 3389 + SYS___GETTOD = 0xD3E // 3390 + SYS_C16RTOMB = 0xD40 // 3392 + SYS_C32RTOMB = 0xD41 // 3393 + SYS_MBRTOC16 = 0xD42 // 3394 + SYS_MBRTOC32 = 0xD43 // 3395 + SYS_QUANTEXPD32 = 0xD44 // 3396 + SYS_QUANTEXPD64 = 0xD45 // 3397 + SYS_QUANTEXPD128 = 0xD46 // 3398 + SYS___LOCALE_CTL = 0xD47 // 3399 + SYS___SMF_RECORD2 = 0xD48 // 3400 + SYS_FOPEN64 = 0xD49 // 3401 + SYS_FOPEN64_UNLOCKED = 0xD4A // 3402 + SYS_FREOPEN64 = 0xD4B // 3403 + SYS_FREOPEN64_UNLOCKED = 0xD4C // 3404 + SYS_TMPFILE64 = 0xD4D // 3405 + SYS_TMPFILE64_UNLOCKED = 0xD4E // 3406 + SYS_GETDATE64 = 0xD4F // 3407 + SYS_GETTIMEOFDAY64 = 0xD50 // 3408 + SYS_BIND2ADDRSEL = 0xD59 // 3417 + SYS_INET6_IS_SRCADDR = 0xD5A // 3418 + SYS___GETGRGID1 = 0xD5B // 3419 + SYS___GETGRNAM1 = 0xD5C // 3420 + SYS___FBUFSIZE = 0xD60 // 3424 + SYS___FPENDING = 0xD61 // 3425 + SYS___FLBF = 0xD62 // 3426 + SYS___FREADABLE = 0xD63 // 3427 + SYS___FWRITABLE = 0xD64 // 3428 + SYS___FREADING = 0xD65 // 3429 + SYS___FWRITING = 0xD66 // 3430 + SYS___FSETLOCKING = 0xD67 // 3431 + SYS__FLUSHLBF = 0xD68 // 3432 + SYS___FPURGE = 0xD69 // 3433 + SYS___FREADAHEAD = 0xD6A // 3434 + SYS___FSETERR = 0xD6B // 3435 + SYS___FPENDING_UNLOCKED = 0xD6C // 3436 + SYS___FREADING_UNLOCKED = 0xD6D // 3437 + SYS___FWRITING_UNLOCKED = 0xD6E // 3438 + SYS__FLUSHLBF_UNLOCKED = 0xD6F // 3439 + SYS___FPURGE_UNLOCKED = 0xD70 // 3440 + SYS___FREADAHEAD_UNLOCKED = 0xD71 // 3441 + SYS___LE_CEEGTJS = 0xD72 // 3442 + SYS___LE_RECORD_DUMP = 0xD73 // 3443 + SYS_FSTAT64 = 0xD74 // 3444 + SYS_LSTAT64 = 0xD75 // 3445 + SYS_STAT64 = 0xD76 // 3446 + SYS___READDIR2_64 = 0xD77 // 3447 + SYS___OPEN_STAT64 = 0xD78 // 3448 + SYS_FTW64 = 0xD79 // 3449 + SYS_NFTW64 = 0xD7A // 3450 + SYS_UTIME64 = 0xD7B // 3451 + SYS_UTIMES64 = 0xD7C // 3452 + SYS___GETIPC64 = 0xD7D // 3453 + SYS_MSGCTL64 = 0xD7E // 3454 + SYS_SEMCTL64 = 0xD7F // 3455 + SYS_SHMCTL64 = 0xD80 // 3456 + SYS_MSGXRCV64 = 0xD81 // 3457 + SYS___MGXR64 = 0xD81 // 3457 + SYS_W_GETPSENT64 = 0xD82 // 3458 + SYS_PTHREAD_COND_TIMEDWAIT64 = 0xD83 // 3459 + SYS_FTIME64 = 0xD85 // 3461 + SYS_GETUTXENT64 = 0xD86 // 3462 + SYS_GETUTXID64 = 0xD87 // 3463 + SYS_GETUTXLINE64 = 0xD88 // 3464 + SYS_PUTUTXLINE64 = 0xD89 // 3465 + SYS_NEWLOCALE = 0xD8A // 3466 + SYS_FREELOCALE = 0xD8B // 3467 + SYS_USELOCALE = 0xD8C // 3468 + SYS_DUPLOCALE = 0xD8D // 3469 + SYS___CHATTR64 = 0xD9C // 3484 + SYS___LCHATTR64 = 0xD9D // 3485 + SYS___FCHATTR64 = 0xD9E // 3486 + SYS_____CHATTR64_A = 0xD9F // 3487 + SYS_____LCHATTR64_A = 0xDA0 // 3488 + SYS___LE_CEEUSGD = 0xDA1 // 3489 + SYS___LE_IFAM_CON = 0xDA2 // 3490 + SYS___LE_IFAM_DSC = 0xDA3 // 3491 + SYS___LE_IFAM_GET = 0xDA4 // 3492 + SYS___LE_IFAM_QRY = 0xDA5 // 3493 + SYS_ALIGNED_ALLOC = 0xDA6 // 3494 + SYS_ACCEPT4 = 0xDA7 // 3495 + SYS___ACCEPT4_A = 0xDA8 // 3496 + SYS_COPYFILERANGE = 0xDA9 // 3497 + SYS_GETLINE = 0xDAA // 3498 + SYS___GETLINE_A = 0xDAB // 3499 + SYS_DIRFD = 0xDAC // 3500 + SYS_CLOCK_GETTIME = 0xDAD // 3501 + SYS_DUP3 = 0xDAE // 3502 + SYS_EPOLL_CREATE = 0xDAF // 3503 + SYS_EPOLL_CREATE1 = 0xDB0 // 3504 + SYS_EPOLL_CTL = 0xDB1 // 3505 + SYS_EPOLL_WAIT = 0xDB2 // 3506 + SYS_EPOLL_PWAIT = 0xDB3 // 3507 + SYS_EVENTFD = 0xDB4 // 3508 + SYS_STATFS = 0xDB5 // 3509 + SYS___STATFS_A = 0xDB6 // 3510 + SYS_FSTATFS = 0xDB7 // 3511 + SYS_INOTIFY_INIT = 0xDB8 // 3512 + SYS_INOTIFY_INIT1 = 0xDB9 // 3513 + SYS_INOTIFY_ADD_WATCH = 0xDBA // 3514 + SYS___INOTIFY_ADD_WATCH_A = 0xDBB // 3515 + SYS_INOTIFY_RM_WATCH = 0xDBC // 3516 + SYS_PIPE2 = 0xDBD // 3517 + SYS_PIVOT_ROOT = 0xDBE // 3518 + SYS___PIVOT_ROOT_A = 0xDBF // 3519 + SYS_PRCTL = 0xDC0 // 3520 + SYS_PRLIMIT = 0xDC1 // 3521 + SYS_SETHOSTNAME = 0xDC2 // 3522 + SYS___SETHOSTNAME_A = 0xDC3 // 3523 + SYS_SETRESUID = 0xDC4 // 3524 + SYS_SETRESGID = 0xDC5 // 3525 + SYS_PTHREAD_CONDATTR_GETCLOCK = 0xDC6 // 3526 + SYS_FLOCK = 0xDC7 // 3527 + SYS_FGETXATTR = 0xDC8 // 3528 + SYS___FGETXATTR_A = 0xDC9 // 3529 + SYS_FLISTXATTR = 0xDCA // 3530 + SYS___FLISTXATTR_A = 0xDCB // 3531 + SYS_FREMOVEXATTR = 0xDCC // 3532 + SYS___FREMOVEXATTR_A = 0xDCD // 3533 + SYS_FSETXATTR = 0xDCE // 3534 + SYS___FSETXATTR_A = 0xDCF // 3535 + SYS_GETXATTR = 0xDD0 // 3536 + SYS___GETXATTR_A = 0xDD1 // 3537 + SYS_LGETXATTR = 0xDD2 // 3538 + SYS___LGETXATTR_A = 0xDD3 // 3539 + SYS_LISTXATTR = 0xDD4 // 3540 + SYS___LISTXATTR_A = 0xDD5 // 3541 + SYS_LLISTXATTR = 0xDD6 // 3542 + SYS___LLISTXATTR_A = 0xDD7 // 3543 + SYS_LREMOVEXATTR = 0xDD8 // 3544 + SYS___LREMOVEXATTR_A = 0xDD9 // 3545 + SYS_LSETXATTR = 0xDDA // 3546 + SYS___LSETXATTR_A = 0xDDB // 3547 + SYS_REMOVEXATTR = 0xDDC // 3548 + SYS___REMOVEXATTR_A = 0xDDD // 3549 + SYS_SETXATTR = 0xDDE // 3550 + SYS___SETXATTR_A = 0xDDF // 3551 + SYS_FDATASYNC = 0xDE0 // 3552 + SYS_SYNCFS = 0xDE1 // 3553 + SYS_FUTIMES = 0xDE2 // 3554 + SYS_FUTIMESAT = 0xDE3 // 3555 + SYS___FUTIMESAT_A = 0xDE4 // 3556 + SYS_LUTIMES = 0xDE5 // 3557 + SYS___LUTIMES_A = 0xDE6 // 3558 + SYS_INET_ATON = 0xDE7 // 3559 + SYS_GETRANDOM = 0xDE8 // 3560 + SYS_GETTID = 0xDE9 // 3561 + SYS_MEMFD_CREATE = 0xDEA // 3562 + SYS___MEMFD_CREATE_A = 0xDEB // 3563 + SYS_FACCESSAT = 0xDEC // 3564 + SYS___FACCESSAT_A = 0xDED // 3565 + SYS_FCHMODAT = 0xDEE // 3566 + SYS___FCHMODAT_A = 0xDEF // 3567 + SYS_FCHOWNAT = 0xDF0 // 3568 + SYS___FCHOWNAT_A = 0xDF1 // 3569 + SYS_FSTATAT = 0xDF2 // 3570 + SYS___FSTATAT_A = 0xDF3 // 3571 + SYS_LINKAT = 0xDF4 // 3572 + SYS___LINKAT_A = 0xDF5 // 3573 + SYS_MKDIRAT = 0xDF6 // 3574 + SYS___MKDIRAT_A = 0xDF7 // 3575 + SYS_MKFIFOAT = 0xDF8 // 3576 + SYS___MKFIFOAT_A = 0xDF9 // 3577 + SYS_MKNODAT = 0xDFA // 3578 + SYS___MKNODAT_A = 0xDFB // 3579 + SYS_OPENAT = 0xDFC // 3580 + SYS___OPENAT_A = 0xDFD // 3581 + SYS_READLINKAT = 0xDFE // 3582 + SYS___READLINKAT_A = 0xDFF // 3583 + SYS_RENAMEAT = 0xE00 // 3584 + SYS___RENAMEAT_A = 0xE01 // 3585 + SYS_RENAMEAT2 = 0xE02 // 3586 + SYS___RENAMEAT2_A = 0xE03 // 3587 + SYS_SYMLINKAT = 0xE04 // 3588 + SYS___SYMLINKAT_A = 0xE05 // 3589 + SYS_UNLINKAT = 0xE06 // 3590 + SYS___UNLINKAT_A = 0xE07 // 3591 + SYS_SYSINFO = 0xE08 // 3592 + SYS_WAIT4 = 0xE0A // 3594 + SYS_CLONE = 0xE0B // 3595 + SYS_UNSHARE = 0xE0C // 3596 + SYS_SETNS = 0xE0D // 3597 + SYS_CAPGET = 0xE0E // 3598 + SYS_CAPSET = 0xE0F // 3599 + SYS_STRCHRNUL = 0xE10 // 3600 + SYS_PTHREAD_CONDATTR_SETCLOCK = 0xE12 // 3602 + SYS_OPEN_BY_HANDLE_AT = 0xE13 // 3603 + SYS___OPEN_BY_HANDLE_AT_A = 0xE14 // 3604 + SYS___INET_ATON_A = 0xE15 // 3605 + SYS_MOUNT1 = 0xE16 // 3606 + SYS___MOUNT1_A = 0xE17 // 3607 + SYS_UMOUNT1 = 0xE18 // 3608 + SYS___UMOUNT1_A = 0xE19 // 3609 + SYS_UMOUNT2 = 0xE1A // 3610 + SYS___UMOUNT2_A = 0xE1B // 3611 + SYS___PRCTL_A = 0xE1C // 3612 + SYS_LOCALTIME_R2 = 0xE1D // 3613 + SYS___LOCALTIME_R2_A = 0xE1E // 3614 + SYS_OPENAT2 = 0xE1F // 3615 + SYS___OPENAT2_A = 0xE20 // 3616 + SYS___LE_CEEMICT = 0xE21 // 3617 + SYS_GETENTROPY = 0xE22 // 3618 + SYS_NANOSLEEP = 0xE23 // 3619 + SYS_UTIMENSAT = 0xE24 // 3620 + SYS___UTIMENSAT_A = 0xE25 // 3621 + SYS_ASPRINTF = 0xE26 // 3622 + SYS___ASPRINTF_A = 0xE27 // 3623 + SYS_VASPRINTF = 0xE28 // 3624 + SYS___VASPRINTF_A = 0xE29 // 3625 + SYS_DPRINTF = 0xE2A // 3626 + SYS___DPRINTF_A = 0xE2B // 3627 + SYS_GETOPT_LONG = 0xE2C // 3628 + SYS___GETOPT_LONG_A = 0xE2D // 3629 + SYS_PSIGNAL = 0xE2E // 3630 + SYS___PSIGNAL_A = 0xE2F // 3631 + SYS_PSIGNAL_UNLOCKED = 0xE30 // 3632 + SYS___PSIGNAL_UNLOCKED_A = 0xE31 // 3633 + SYS_FSTATAT_O = 0xE32 // 3634 + SYS___FSTATAT_O_A = 0xE33 // 3635 + SYS_FSTATAT64 = 0xE34 // 3636 + SYS___FSTATAT64_A = 0xE35 // 3637 + SYS___CHATTRAT = 0xE36 // 3638 + SYS_____CHATTRAT_A = 0xE37 // 3639 + SYS___CHATTRAT64 = 0xE38 // 3640 + SYS_____CHATTRAT64_A = 0xE39 // 3641 + SYS_MADVISE = 0xE3A // 3642 + SYS___AUTHENTICATE = 0xE3B // 3643 + ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index eff6bcdef..0036746ea 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -1178,7 +1178,8 @@ const ( PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 0x12 - PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x13 + PERF_SAMPLE_BRANCH_COUNTERS = 0x80000 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x14 PERF_SAMPLE_BRANCH_USER = 0x1 PERF_SAMPLE_BRANCH_KERNEL = 0x2 PERF_SAMPLE_BRANCH_HV = 0x4 @@ -1198,7 +1199,7 @@ const ( PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 PERF_SAMPLE_BRANCH_PRIV_SAVE = 0x40000 - PERF_SAMPLE_BRANCH_MAX = 0x80000 + PERF_SAMPLE_BRANCH_MAX = 0x100000 PERF_BR_UNKNOWN = 0x0 PERF_BR_COND = 0x1 PERF_BR_UNCOND = 0x2 @@ -2481,6 +2482,15 @@ type XDPMmapOffsets struct { Cr XDPRingOffset } +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Chunk_size uint32 + Headroom uint32 + Flags uint32 + Tx_metadata_len uint32 +} + type XDPStatistics struct { Rx_dropped uint64 Rx_invalid_descs uint64 @@ -2935,7 +2945,7 @@ const ( BPF_TCP_LISTEN = 0xa BPF_TCP_CLOSING = 0xb BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd + BPF_TCP_MAX_STATES = 0xe TCP_BPF_IW = 0x3e9 TCP_BPF_SNDCWND_CLAMP = 0x3ea TCP_BPF_DELACK_MAX = 0x3eb @@ -3211,7 +3221,7 @@ const ( DEVLINK_CMD_LINECARD_NEW = 0x50 DEVLINK_CMD_LINECARD_DEL = 0x51 DEVLINK_CMD_SELFTESTS_GET = 0x52 - DEVLINK_CMD_MAX = 0x53 + DEVLINK_CMD_MAX = 0x54 DEVLINK_PORT_TYPE_NOTSET = 0x0 DEVLINK_PORT_TYPE_AUTO = 0x1 DEVLINK_PORT_TYPE_ETH = 0x2 @@ -4595,7 +4605,7 @@ const ( NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x146 + NL80211_ATTR_MAX = 0x149 NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce NL80211_ATTR_MAX_MATCH_SETS = 0x85 @@ -4861,7 +4871,7 @@ const ( NL80211_BSS_FREQUENCY_OFFSET = 0x14 NL80211_BSS_INFORMATION_ELEMENTS = 0x6 NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf - NL80211_BSS_MAX = 0x16 + NL80211_BSS_MAX = 0x18 NL80211_BSS_MLD_ADDR = 0x16 NL80211_BSS_MLO_LINK_ID = 0x15 NL80211_BSS_PAD = 0x10 @@ -4965,7 +4975,7 @@ const ( NL80211_CMD_LEAVE_IBSS = 0x2c NL80211_CMD_LEAVE_MESH = 0x45 NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_MAX = 0x9a + NL80211_CMD_MAX = 0x9b NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 NL80211_CMD_MODIFY_LINK_STA = 0x97 NL80211_CMD_NAN_MATCH = 0x78 @@ -5199,7 +5209,7 @@ const ( NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_MAX = 0x1c + NL80211_FREQUENCY_ATTR_MAX = 0x1f NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index 438a30aff..fd402da43 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -477,14 +477,6 @@ const ( BLKPG = 0x1269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index adceca355..eb7a5e186 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -492,15 +492,6 @@ const ( BLKPG = 0x1269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index eeaa00a37..d78ac108b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -470,15 +470,6 @@ const ( BLKPG = 0x1269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 6739aa91d..cd06d47f1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -471,15 +471,6 @@ const ( BLKPG = 0x1269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go index 9920ef631..2f28fe26c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go @@ -472,15 +472,6 @@ const ( BLKPG = 0x1269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 2923b799a..71d6cac2f 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -476,15 +476,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index ce2750ee4..8596d4535 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -474,15 +474,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index 3038811d7..cd60ea186 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -474,15 +474,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index efc6fed18..b0ae420c4 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -476,15 +476,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go index 9a654b75a..835972875 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go @@ -482,15 +482,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 40d358e33..69eb6a5c6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -481,15 +481,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 148c6ceb8..5f583cb62 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -481,15 +481,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index 72ba81543..15adc0414 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -499,15 +499,6 @@ const ( BLKPG = 0x1269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index 71e765508..cf3ce9003 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -495,15 +495,6 @@ const ( BLKPG = 0x1269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index 4abbdb9de..590b56739 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -476,15 +476,6 @@ const ( BLKPG = 0x20001269 ) -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - _ [4]byte -} - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go index 54f31be63..d9a13af46 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go @@ -25,10 +25,13 @@ const ( SizeofIPv6Mreq = 20 SizeofICMPv6Filter = 32 SizeofIPv6MTUInfo = 32 + SizeofInet4Pktinfo = 8 + SizeofInet6Pktinfo = 20 SizeofLinger = 8 SizeofSockaddrInet4 = 16 SizeofSockaddrInet6 = 28 SizeofTCPInfo = 0x68 + SizeofUcred = 12 ) type ( @@ -69,12 +72,17 @@ type Utimbuf struct { } type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte + Sysname [16]byte + Nodename [32]byte + Release [8]byte + Version [8]byte + Machine [16]byte +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 } type RawSockaddrInet4 struct { @@ -325,7 +333,7 @@ type Statvfs_t struct { } type Statfs_t struct { - Type uint32 + Type uint64 Bsize uint64 Blocks uint64 Bfree uint64 @@ -336,6 +344,7 @@ type Statfs_t struct { Namelen uint64 Frsize uint64 Flags uint64 + _ [4]uint64 } type direntLE struct { @@ -412,3 +421,126 @@ type W_Mntent struct { Quiesceowner [8]byte _ [38]byte } + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name string +} + +const ( + SizeofInotifyEvent = 0x10 +) + +type ConsMsg2 struct { + Cm2Format uint16 + Cm2R1 uint16 + Cm2Msglength uint32 + Cm2Msg *byte + Cm2R2 [4]byte + Cm2R3 [4]byte + Cm2Routcde *uint32 + Cm2Descr *uint32 + Cm2Msgflag uint32 + Cm2Token uint32 + Cm2Msgid *uint32 + Cm2R4 [4]byte + Cm2DomToken uint32 + Cm2DomMsgid *uint32 + Cm2ModCartptr *byte + Cm2ModConsidptr *byte + Cm2MsgCart [8]byte + Cm2MsgConsid [4]byte + Cm2R5 [12]byte +} + +const ( + CC_modify = 1 + CC_stop = 2 + CONSOLE_FORMAT_2 = 2 + CONSOLE_FORMAT_3 = 3 + CONSOLE_HRDCPY = 0x80000000 +) + +type OpenHow struct { + Flags uint64 + Mode uint64 + Resolve uint64 +} + +const SizeofOpenHow = 0x18 + +const ( + RESOLVE_CACHED = 0x20 + RESOLVE_BENEATH = 0x8 + RESOLVE_IN_ROOT = 0x10 + RESOLVE_NO_MAGICLINKS = 0x2 + RESOLVE_NO_SYMLINKS = 0x4 + RESOLVE_NO_XDEV = 0x1 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + _ [44]byte +} + +type SysvIpcPerm struct { + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode int32 +} + +type SysvShmDesc struct { + Perm SysvIpcPerm + _ [4]byte + Lpid int32 + Cpid int32 + Nattch uint32 + _ [4]byte + _ [4]byte + _ [4]byte + _ int32 + _ uint8 + _ uint8 + _ uint16 + _ *byte + Segsz uint64 + Atime Time_t + Dtime Time_t + Ctime Time_t +} + +type SysvShmDesc64 struct { + Perm SysvIpcPerm + _ [4]byte + Lpid int32 + Cpid int32 + Nattch uint32 + _ [4]byte + _ [4]byte + _ [4]byte + _ int32 + _ byte + _ uint8 + _ uint16 + _ *byte + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 +} diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go index ce2d713d6..16f90560a 100644 --- a/vendor/golang.org/x/sys/windows/aliases.go +++ b/vendor/golang.org/x/sys/windows/aliases.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build windows && go1.9 +//go:build windows package windows diff --git a/vendor/golang.org/x/sys/windows/empty.s b/vendor/golang.org/x/sys/windows/empty.s deleted file mode 100644 index ba64caca5..000000000 --- a/vendor/golang.org/x/sys/windows/empty.s +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.12 - -// This file is here to allow bodyless functions with go:linkname for Go 1.11 -// and earlier (see https://golang.org/issue/23311). diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go index 865d90597..3ea1b3fa4 100644 --- a/vendor/golang.org/x/tools/go/packages/packages.go +++ b/vendor/golang.org/x/tools/go/packages/packages.go @@ -129,9 +129,8 @@ type Config struct { Mode LoadMode // Context specifies the context for the load operation. - // If the context is cancelled, the loader may stop early - // and return an ErrCancelled error. - // If Context is nil, the load cannot be cancelled. + // Cancelling the context may cause [Load] to abort and + // return an error. Context context.Context // Logf is the logger for the config. @@ -214,8 +213,8 @@ type Config struct { // Config specifies loading options; // nil behaves the same as an empty Config. // -// Load returns an error if any of the patterns was invalid -// as defined by the underlying build system. +// If any of the patterns was invalid as defined by the +// underlying build system, Load returns an error. // It may return an empty list of packages without an error, // for instance for an empty expansion of a valid wildcard. // Errors associated with a particular package are recorded in the @@ -428,6 +427,10 @@ type Package struct { // The NeedTypes LoadMode bit sets this field for packages matching the // patterns; type information for dependencies may be missing or incomplete, // unless NeedDeps and NeedImports are also set. + // + // Each call to [Load] returns a consistent set of type + // symbols, as defined by the comment at [types.Identical]. + // Avoid mixing type information from two or more calls to [Load]. Types *types.Package // Fset provides position information for Types, TypesInfo, and Syntax. @@ -854,6 +857,12 @@ func (ld *loader) refine(response *DriverResponse) ([]*Package, error) { wg.Wait() } + // If the context is done, return its error and + // throw out [likely] incomplete packages. + if err := ld.Context.Err(); err != nil { + return nil, err + } + result := make([]*Package, len(initial)) for i, lpkg := range initial { result[i] = lpkg.Package @@ -949,6 +958,14 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) lpkg.Fset = ld.Fset + // Start shutting down if the context is done and do not load + // source or export data files. + // Packages that import this one will have ld.Context.Err() != nil. + // ld.Context.Err() will be returned later by refine. + if ld.Context.Err() != nil { + return + } + // Subtle: we populate all Types fields with an empty Package // before loading export data so that export data processing // never has to create a types.Package for an indirect dependency, @@ -1068,6 +1085,13 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { return } + // Start shutting down if the context is done and do not type check. + // Packages that import this one will have ld.Context.Err() != nil. + // ld.Context.Err() will be returned later by refine. + if ld.Context.Err() != nil { + return + } + lpkg.TypesInfo = &types.Info{ Types: make(map[ast.Expr]types.TypeAndValue), Defs: make(map[*ast.Ident]types.Object), @@ -1245,11 +1269,6 @@ func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { parsed := make([]*ast.File, n) errors := make([]error, n) for i, file := range filenames { - if ld.Config.Context.Err() != nil { - parsed[i] = nil - errors[i] = ld.Config.Context.Err() - continue - } wg.Add(1) go func(i int, filename string) { parsed[i], errors[i] = ld.parseFile(filename) diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases.go b/vendor/golang.org/x/tools/internal/aliases/aliases.go index f89112c8e..c24c2eee4 100644 --- a/vendor/golang.org/x/tools/internal/aliases/aliases.go +++ b/vendor/golang.org/x/tools/internal/aliases/aliases.go @@ -16,10 +16,14 @@ import ( // NewAlias creates a new TypeName in Package pkg that // is an alias for the type rhs. // -// When GoVersion>=1.22 and GODEBUG=gotypesalias=1, -// the Type() of the return value is a *types.Alias. -func NewAlias(pos token.Pos, pkg *types.Package, name string, rhs types.Type) *types.TypeName { - if enabled() { +// The enabled parameter determines whether the resulting [TypeName]'s +// type is an [types.Alias]. Its value must be the result of a call to +// [Enabled], which computes the effective value of +// GODEBUG=gotypesalias=... by invoking the type checker. The Enabled +// function is expensive and should be called once per task (e.g. +// package import), not once per call to NewAlias. +func NewAlias(enabled bool, pos token.Pos, pkg *types.Package, name string, rhs types.Type) *types.TypeName { + if enabled { tname := types.NewTypeName(pos, pkg, name, nil) newAlias(tname, rhs) return tname diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go index 1872b56ff..c027b9f31 100644 --- a/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go +++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go @@ -15,16 +15,17 @@ import ( // It will never be created by go/types. type Alias struct{} -func (*Alias) String() string { panic("unreachable") } - +func (*Alias) String() string { panic("unreachable") } func (*Alias) Underlying() types.Type { panic("unreachable") } - -func (*Alias) Obj() *types.TypeName { panic("unreachable") } +func (*Alias) Obj() *types.TypeName { panic("unreachable") } +func Rhs(alias *Alias) types.Type { panic("unreachable") } // Unalias returns the type t for go <=1.21. func Unalias(t types.Type) types.Type { return t } -// Always false for go <=1.21. Ignores GODEBUG. -func enabled() bool { return false } - func newAlias(name *types.TypeName, rhs types.Type) *Alias { panic("unreachable") } + +// Enabled reports whether [NewAlias] should create [types.Alias] types. +// +// Before go1.22, this function always returns false. +func Enabled() bool { return false } diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go index 8b9211628..b32995484 100644 --- a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go +++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go @@ -12,14 +12,22 @@ import ( "go/parser" "go/token" "go/types" - "os" - "strings" - "sync" ) // Alias is an alias of types.Alias. type Alias = types.Alias +// Rhs returns the type on the right-hand side of the alias declaration. +func Rhs(alias *Alias) types.Type { + if alias, ok := any(alias).(interface{ Rhs() types.Type }); ok { + return alias.Rhs() // go1.23+ + } + + // go1.22's Alias didn't have the Rhs method, + // so Unalias is the best we can do. + return Unalias(alias) +} + // Unalias is a wrapper of types.Unalias. func Unalias(t types.Type) types.Type { return types.Unalias(t) } @@ -33,40 +41,23 @@ func newAlias(tname *types.TypeName, rhs types.Type) *Alias { return a } -// enabled returns true when types.Aliases are enabled. -func enabled() bool { - // Use the gotypesalias value in GODEBUG if set. - godebug := os.Getenv("GODEBUG") - value := -1 // last set value. - for _, f := range strings.Split(godebug, ",") { - switch f { - case "gotypesalias=1": - value = 1 - case "gotypesalias=0": - value = 0 - } - } - switch value { - case 0: - return false - case 1: - return true - default: - return aliasesDefault() - } -} - -// aliasesDefault reports if aliases are enabled by default. -func aliasesDefault() bool { - // Dynamically check if Aliases will be produced from go/types. - aliasesDefaultOnce.Do(func() { - fset := token.NewFileSet() - f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", 0) - pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) - _, gotypesaliasDefault = pkg.Scope().Lookup("A").Type().(*types.Alias) - }) - return gotypesaliasDefault +// Enabled reports whether [NewAlias] should create [types.Alias] types. +// +// This function is expensive! Call it sparingly. +func Enabled() bool { + // The only reliable way to compute the answer is to invoke go/types. + // We don't parse the GODEBUG environment variable, because + // (a) it's tricky to do so in a manner that is consistent + // with the godebug package; in particular, a simple + // substring check is not good enough. The value is a + // rightmost-wins list of options. But more importantly: + // (b) it is impossible to detect changes to the effective + // setting caused by os.Setenv("GODEBUG"), as happens in + // many tests. Therefore any attempt to cache the result + // is just incorrect. + fset := token.NewFileSet() + f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", 0) + pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) + _, enabled := pkg.Scope().Lookup("A").Type().(*types.Alias) + return enabled } - -var gotypesaliasDefault bool -var aliasesDefaultOnce sync.Once diff --git a/vendor/golang.org/x/tools/internal/event/tag/tag.go b/vendor/golang.org/x/tools/internal/event/tag/tag.go deleted file mode 100644 index 581b26c20..000000000 --- a/vendor/golang.org/x/tools/internal/event/tag/tag.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package tag provides the labels used for telemetry throughout gopls. -package tag - -import ( - "golang.org/x/tools/internal/event/keys" -) - -var ( - // create the label keys we use - Method = keys.NewString("method", "") - StatusCode = keys.NewString("status.code", "") - StatusMessage = keys.NewString("status.message", "") - RPCID = keys.NewString("id", "") - RPCDirection = keys.NewString("direction", "") - File = keys.NewString("file", "") - Directory = keys.New("directory", "") - URI = keys.New("URI", "") - Package = keys.NewString("package", "") // sorted comma-separated list of Package IDs - PackagePath = keys.NewString("package_path", "") - Query = keys.New("query", "") - Snapshot = keys.NewUInt64("snapshot", "") - Operation = keys.NewString("operation", "") - - Position = keys.New("position", "") - Category = keys.NewString("category", "") - PackageCount = keys.NewInt("packages", "") - Files = keys.New("files", "") - Port = keys.NewInt("port", "") - Type = keys.New("type", "") - HoverKind = keys.NewString("hoverkind", "") - - NewServer = keys.NewString("new_server", "A new server was added") - EndServer = keys.NewString("end_server", "A server was shut down") - - ServerID = keys.NewString("server", "The server ID an event is related to") - Logfile = keys.NewString("logfile", "") - DebugAddress = keys.NewString("debug_address", "") - GoplsPath = keys.NewString("gopls_path", "") - ClientID = keys.NewString("client_id", "") - - Level = keys.NewInt("level", "The logging level") -) - -var ( - // create the stats we measure - Started = keys.NewInt64("started", "Count of started RPCs.") - ReceivedBytes = keys.NewInt64("received_bytes", "Bytes received.") //, unit.Bytes) - SentBytes = keys.NewInt64("sent_bytes", "Bytes sent.") //, unit.Bytes) - Latency = keys.NewFloat64("latency_ms", "Elapsed time in milliseconds") //, unit.Milliseconds) -) - -const ( - Inbound = "in" - Outbound = "out" -) diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index 683bd7395..deeb67f31 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -21,7 +21,6 @@ import ( "sort" "strconv" "strings" - "unsafe" "golang.org/x/tools/go/types/objectpath" "golang.org/x/tools/internal/aliases" @@ -529,7 +528,7 @@ func (p *iexporter) doDecl(obj types.Object) { if alias, ok := t.(*aliases.Alias); ok { // Preserve materialized aliases, // even of non-exported types. - t = aliasRHS(alias) + t = aliases.Rhs(alias) } w.typ(t, obj.Pkg()) break @@ -1331,19 +1330,3 @@ func (e internalError) Error() string { return "gcimporter: " + string(e) } func internalErrorf(format string, args ...interface{}) error { return internalError(fmt.Sprintf(format, args...)) } - -// aliasRHS removes exactly one Alias constructor. -func aliasRHS(alias *aliases.Alias) types.Type { - // TODO(adonovan): if proposal #66559 is accepted, this will - // become Alias.RHS(alias). In the meantime, we must punch - // through the drywall. - type go123Alias struct { - _ *types.TypeName - _ *types.TypeParamList - RHS types.Type - _ types.Type - } - var raw *go123Alias - *(**aliases.Alias)(unsafe.Pointer(&raw)) = alias - return raw.RHS -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go index 2732121b5..136aa0365 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go @@ -210,6 +210,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte p := iimporter{ version: int(version), ipath: path, + aliases: aliases.Enabled(), shallow: shallow, reportf: reportf, @@ -369,6 +370,7 @@ type iimporter struct { version int ipath string + aliases bool shallow bool reportf ReportFunc // if non-nil, used to report bugs @@ -567,7 +569,7 @@ func (r *importReader) obj(name string) { // tparams := r.tparamList() // alias.SetTypeParams(tparams) // } - r.declare(aliases.NewAlias(pos, r.currPkg, name, typ)) + r.declare(aliases.NewAlias(r.p.aliases, pos, r.currPkg, name, typ)) case constTag: typ, val := r.value() diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go index b3be452ae..2c0770688 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go @@ -26,6 +26,7 @@ type pkgReader struct { ctxt *types.Context imports map[string]*types.Package // previously imported packages, indexed by path + aliases bool // create types.Alias nodes // lazily initialized arrays corresponding to the unified IR // PosBase, Pkg, and Type sections, respectively. @@ -99,6 +100,7 @@ func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[st ctxt: ctxt, imports: imports, + aliases: aliases.Enabled(), posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), @@ -524,7 +526,7 @@ func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { case pkgbits.ObjAlias: pos := r.pos() typ := r.typ() - declare(aliases.NewAlias(pos, objPkg, objName, typ)) + declare(aliases.NewAlias(r.p.aliases, pos, objPkg, objName, typ)) case pkgbits.ObjConst: pos := r.pos() diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go index f7de3c828..eb7a8282f 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go @@ -25,7 +25,6 @@ import ( "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/event/keys" "golang.org/x/tools/internal/event/label" - "golang.org/x/tools/internal/event/tag" ) // An Runner will run go command invocations and serialize @@ -55,11 +54,14 @@ func (runner *Runner) initialize() { // 1.14: go: updating go.mod: existing contents have changed since last read var modConcurrencyError = regexp.MustCompile(`go:.*go.mod.*contents have changed`) -// verb is an event label for the go command verb. -var verb = keys.NewString("verb", "go command verb") +// event keys for go command invocations +var ( + verb = keys.NewString("verb", "go command verb") + directory = keys.NewString("directory", "") +) func invLabels(inv Invocation) []label.Label { - return []label.Label{verb.Of(inv.Verb), tag.Directory.Of(inv.WorkingDir)} + return []label.Label{verb.Of(inv.Verb), directory.Of(inv.WorkingDir)} } // Run is a convenience wrapper around RunRaw. diff --git a/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/vendor/golang.org/x/tools/internal/gocommand/vendor.go index 2d3d408c0..e38d1fb48 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/vendor.go +++ b/vendor/golang.org/x/tools/internal/gocommand/vendor.go @@ -107,3 +107,57 @@ func getMainModuleAnd114(ctx context.Context, inv Invocation, r *Runner) (*Modul } return mod, lines[4] == "go1.14", nil } + +// WorkspaceVendorEnabled reports whether workspace vendoring is enabled. It takes a *Runner to execute Go commands +// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, +// of which only Verb and Args are modified to run the appropriate Go command. +// Inspired by setDefaultBuildMod in modload/init.go +func WorkspaceVendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, []*ModuleJSON, error) { + inv.Verb = "env" + inv.Args = []string{"GOWORK"} + stdout, err := r.Run(ctx, inv) + if err != nil { + return false, nil, err + } + goWork := string(bytes.TrimSpace(stdout.Bytes())) + if fi, err := os.Stat(filepath.Join(filepath.Dir(goWork), "vendor")); err == nil && fi.IsDir() { + mainMods, err := getWorkspaceMainModules(ctx, inv, r) + if err != nil { + return false, nil, err + } + return true, mainMods, nil + } + return false, nil, nil +} + +// getWorkspaceMainModules gets the main modules' information. +// This is the information needed to figure out if vendoring should be enabled. +func getWorkspaceMainModules(ctx context.Context, inv Invocation, r *Runner) ([]*ModuleJSON, error) { + const format = `{{.Path}} +{{.Dir}} +{{.GoMod}} +{{.GoVersion}} +` + inv.Verb = "list" + inv.Args = []string{"-m", "-f", format} + stdout, err := r.Run(ctx, inv) + if err != nil { + return nil, err + } + + lines := strings.Split(strings.TrimSuffix(stdout.String(), "\n"), "\n") + if len(lines) < 4 { + return nil, fmt.Errorf("unexpected stdout: %q", stdout.String()) + } + mods := make([]*ModuleJSON, 0, len(lines)/4) + for i := 0; i < len(lines); i += 4 { + mods = append(mods, &ModuleJSON{ + Path: lines[i], + Dir: lines[i+1], + GoMod: lines[i+2], + GoVersion: lines[i+3], + Main: true, + }) + } + return mods, nil +} diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index 559803276..93d49a6ef 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -301,6 +301,20 @@ func (p *pass) loadPackageNames(imports []*ImportInfo) error { return nil } +// if there is a trailing major version, remove it +func withoutVersion(nm string) string { + if v := path.Base(nm); len(v) > 0 && v[0] == 'v' { + if _, err := strconv.Atoi(v[1:]); err == nil { + // this is, for instance, called with rand/v2 and returns rand + if len(v) < len(nm) { + xnm := nm[:len(nm)-len(v)-1] + return path.Base(xnm) + } + } + } + return nm +} + // importIdentifier returns the identifier that imp will introduce. It will // guess if the package name has not been loaded, e.g. because the source // is not available. @@ -310,7 +324,7 @@ func (p *pass) importIdentifier(imp *ImportInfo) string { } known := p.knownPackages[imp.ImportPath] if known != nil && known.name != "" { - return known.name + return withoutVersion(known.name) } return ImportPathToAssumedName(imp.ImportPath) } @@ -1059,6 +1073,18 @@ func addStdlibCandidates(pass *pass, refs references) error { if err != nil { return err } + localbase := func(nm string) string { + ans := path.Base(nm) + if ans[0] == 'v' { + // this is called, for instance, with math/rand/v2 and returns rand/v2 + if _, err := strconv.Atoi(ans[1:]); err == nil { + ix := strings.LastIndex(nm, ans) + more := path.Base(nm[:ix]) + ans = path.Join(more, ans) + } + } + return ans + } add := func(pkg string) { // Prevent self-imports. if path.Base(pkg) == pass.f.Name.Name && filepath.Join(goenv["GOROOT"], "src", pkg) == pass.srcDir { @@ -1067,13 +1093,17 @@ func addStdlibCandidates(pass *pass, refs references) error { exports := symbolNameSet(stdlib.PackageSymbols[pkg]) pass.addCandidate( &ImportInfo{ImportPath: pkg}, - &packageInfo{name: path.Base(pkg), exports: exports}) + &packageInfo{name: localbase(pkg), exports: exports}) } for left := range refs { if left == "rand" { - // Make sure we try crypto/rand before math/rand. + // Make sure we try crypto/rand before any version of math/rand as both have Int() + // and our policy is to recommend crypto add("crypto/rand") - add("math/rand") + // if the user's no later than go1.21, this should be "math/rand" + // but we have no way of figuring out what the user is using + // TODO: investigate using the toolchain version to disambiguate in the stdlib + add("math/rand/v2") continue } for importPath := range stdlib.PackageSymbols { diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go index 21ef93897..82fe644a1 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -112,11 +112,11 @@ func newModuleResolver(e *ProcessEnv, moduleCacheCache *DirInfoCache) (*ModuleRe } vendorEnabled := false - var mainModVendor *gocommand.ModuleJSON + var mainModVendor *gocommand.ModuleJSON // for module vendoring + var mainModsVendor []*gocommand.ModuleJSON // for workspace vendoring - // Module vendor directories are ignored in workspace mode: - // https://go.googlesource.com/proposal/+/master/design/45713-workspace.md - if len(r.env.Env["GOWORK"]) == 0 { + goWork := r.env.Env["GOWORK"] + if len(goWork) == 0 { // TODO(rfindley): VendorEnabled runs the go command to get GOFLAGS, but // they should be available from the ProcessEnv. Can we avoid the redundant // invocation? @@ -124,18 +124,35 @@ func newModuleResolver(e *ProcessEnv, moduleCacheCache *DirInfoCache) (*ModuleRe if err != nil { return nil, err } + } else { + vendorEnabled, mainModsVendor, err = gocommand.WorkspaceVendorEnabled(context.Background(), inv, r.env.GocmdRunner) + if err != nil { + return nil, err + } } - if mainModVendor != nil && vendorEnabled { - // Vendor mode is on, so all the non-Main modules are irrelevant, - // and we need to search /vendor for everything. - r.mains = []*gocommand.ModuleJSON{mainModVendor} - r.dummyVendorMod = &gocommand.ModuleJSON{ - Path: "", - Dir: filepath.Join(mainModVendor.Dir, "vendor"), + if vendorEnabled { + if mainModVendor != nil { + // Module vendor mode is on, so all the non-Main modules are irrelevant, + // and we need to search /vendor for everything. + r.mains = []*gocommand.ModuleJSON{mainModVendor} + r.dummyVendorMod = &gocommand.ModuleJSON{ + Path: "", + Dir: filepath.Join(mainModVendor.Dir, "vendor"), + } + r.modsByModPath = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} + r.modsByDir = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} + } else { + // Workspace vendor mode is on, so all the non-Main modules are irrelevant, + // and we need to search /vendor for everything. + r.mains = mainModsVendor + r.dummyVendorMod = &gocommand.ModuleJSON{ + Path: "", + Dir: filepath.Join(filepath.Dir(goWork), "vendor"), + } + r.modsByModPath = append(append([]*gocommand.ModuleJSON{}, mainModsVendor...), r.dummyVendorMod) + r.modsByDir = append(append([]*gocommand.ModuleJSON{}, mainModsVendor...), r.dummyVendorMod) } - r.modsByModPath = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} - r.modsByDir = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} } else { // Vendor mode is off, so run go list -m ... to find everything. err := r.initAllMods() @@ -166,8 +183,9 @@ func newModuleResolver(e *ProcessEnv, moduleCacheCache *DirInfoCache) (*ModuleRe return count(j) < count(i) // descending order }) - r.roots = []gopathwalk.Root{ - {Path: filepath.Join(goenv["GOROOT"], "/src"), Type: gopathwalk.RootGOROOT}, + r.roots = []gopathwalk.Root{} + if goenv["GOROOT"] != "" { // "" happens in tests + r.roots = append(r.roots, gopathwalk.Root{Path: filepath.Join(goenv["GOROOT"], "/src"), Type: gopathwalk.RootGOROOT}) } r.mainByDir = make(map[string]*gocommand.ModuleJSON) for _, main := range r.mains { diff --git a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go index b92e8e6eb..2acd85851 100644 --- a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go +++ b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go @@ -23,6 +23,9 @@ type PkgDecoder struct { // version is the file format version. version uint32 + // aliases determines whether types.Aliases should be created + aliases bool + // sync indicates whether the file uses sync markers. sync bool @@ -73,6 +76,7 @@ func (pr *PkgDecoder) SyncMarkers() bool { return pr.sync } func NewPkgDecoder(pkgPath, input string) PkgDecoder { pr := PkgDecoder{ pkgPath: pkgPath, + //aliases: aliases.Enabled(), } // TODO(mdempsky): Implement direct indexing of input string to diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go index e0c27ed25..834e05381 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go @@ -1449,10 +1449,10 @@ const ( NotAGenericType // WrongTypeArgCount occurs when a type or function is instantiated with an - // incorrent number of type arguments, including when a generic type or + // incorrect number of type arguments, including when a generic type or // function is used without instantiation. // - // Errors inolving failed type inference are assigned other error codes. + // Errors involving failed type inference are assigned other error codes. // // Example: // type T[p any] int diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/encode.go b/vendor/google.golang.org/protobuf/encoding/protojson/encode.go index 3f75098b6..29846df22 100644 --- a/vendor/google.golang.org/protobuf/encoding/protojson/encode.go +++ b/vendor/google.golang.org/protobuf/encoding/protojson/encode.go @@ -25,15 +25,17 @@ const defaultIndent = " " // Format formats the message as a multiline string. // This function is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func Format(m proto.Message) string { return MarshalOptions{Multiline: true}.Format(m) } // Marshal writes the given [proto.Message] in JSON format using default options. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func Marshal(m proto.Message) ([]byte, error) { return MarshalOptions{}.Marshal(m) } @@ -110,8 +112,9 @@ type MarshalOptions struct { // Format formats the message as a string. // This method is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func (o MarshalOptions) Format(m proto.Message) string { if m == nil || !m.ProtoReflect().IsValid() { return "" // invalid syntax, but okay since this is for debugging @@ -122,8 +125,9 @@ func (o MarshalOptions) Format(m proto.Message) string { } // Marshal marshals the given [proto.Message] in the JSON format using options in -// MarshalOptions. Do not depend on the output being stable. It may change over -// time across different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { return o.marshal(nil, m) } diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go index 95967e811..1f57e6610 100644 --- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go @@ -27,15 +27,17 @@ const defaultIndent = " " // Format formats the message as a multiline string. // This function is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func Format(m proto.Message) string { return MarshalOptions{Multiline: true}.Format(m) } // Marshal writes the given [proto.Message] in textproto format using default -// options. Do not depend on the output being stable. It may change over time -// across different versions of the program. +// options. Do not depend on the output being stable. Its output will change +// across different builds of your program, even when using the same version of +// the protobuf module. func Marshal(m proto.Message) ([]byte, error) { return MarshalOptions{}.Marshal(m) } @@ -84,8 +86,9 @@ type MarshalOptions struct { // Format formats the message as a string. // This method is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func (o MarshalOptions) Format(m proto.Message) string { if m == nil || !m.ProtoReflect().IsValid() { return "" // invalid syntax, but okay since this is for debugging @@ -98,8 +101,9 @@ func (o MarshalOptions) Format(m proto.Message) string { } // Marshal writes the given [proto.Message] in textproto format using options in -// MarshalOptions object. Do not depend on the output being stable. It may -// change over time across different versions of the program. +// MarshalOptions object. Do not depend on the output being stable. Its output +// will change across different builds of your program, even when using the +// same version of the protobuf module. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { return o.marshal(nil, m) } diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go index a45625c8d..87e46bd4d 100644 --- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go @@ -252,6 +252,7 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record fu {rv.MethodByName("Values"), "Values"}, {rv.MethodByName("ReservedNames"), "ReservedNames"}, {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, + {rv.MethodByName("IsClosed"), "IsClosed"}, }...) case protoreflect.EnumValueDescriptor: diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb index 18f0756874367adcdb790ffde125b6a7388b4eaa..f691305eb4f73440cd48caba949023eab52ef304 100644 GIT binary patch literal 78 zcmd-Q6B6WL6kw8IQef6#G+?@9$Hc)X@r<1dB+ewjD8Z<}1Qcfki8Dw%hln$xi@#u3 Kc*d^rf*k;APzzxI literal 63 zcmd-Q6yo7v6kw8IQef6#G+>f=#?A#2ViI7KU{qiN3NcDNhX^qu3B6!fc*d^rf*k<7 Cln3+x diff --git a/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go b/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go new file mode 100644 index 000000000..029a6a12d --- /dev/null +++ b/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go @@ -0,0 +1,13 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package editionssupport defines constants for editions that are supported. +package editionssupport + +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +const ( + Minimum = descriptorpb.Edition_EDITION_PROTO2 + Maximum = descriptorpb.Edition_EDITION_2023 +) diff --git a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go index 373d20837..7e87c7604 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go @@ -32,6 +32,7 @@ var byteType = reflect.TypeOf(byte(0)) func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor { f := new(filedesc.Field) f.L0.ParentFile = filedesc.SurrogateProto2 + f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures for len(tag) > 0 { i := strings.IndexByte(tag, ',') if i < 0 { @@ -107,8 +108,7 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri f.L1.StringName.InitJSON(jsonName) } case s == "packed": - f.L1.HasPacked = true - f.L1.IsPacked = true + f.L1.EditionFeatures.IsPacked = true case strings.HasPrefix(s, "weak="): f.L1.IsWeak = true f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):])) diff --git a/vendor/google.golang.org/protobuf/internal/errors/errors.go b/vendor/google.golang.org/protobuf/internal/errors/errors.go index 20c17b35e..d96719829 100644 --- a/vendor/google.golang.org/protobuf/internal/errors/errors.go +++ b/vendor/google.golang.org/protobuf/internal/errors/errors.go @@ -87,3 +87,18 @@ func InvalidUTF8(name string) error { func RequiredNotSet(name string) error { return New("required field %v not set", name) } + +type SizeMismatchError struct { + Calculated, Measured int +} + +func (e *SizeMismatchError) Error() string { + return fmt.Sprintf("size mismatch (see https://github.com/golang/protobuf/issues/1609): calculated=%d, measured=%d", e.Calculated, e.Measured) +} + +func MismatchedSizeCalculation(calculated, measured int) error { + return &SizeMismatchError{ + Calculated: calculated, + Measured: measured, + } +} diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 8826bcf40..ece53bea3 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -7,6 +7,7 @@ package filedesc import ( "bytes" "fmt" + "strings" "sync" "sync/atomic" @@ -108,9 +109,12 @@ func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } func (fd *File) Parent() protoreflect.Descriptor { return nil } func (fd *File) Index() int { return 0 } func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax } -func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } -func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } -func (fd *File) IsPlaceholder() bool { return false } + +// Not exported and just used to reconstruct the original FileDescriptor proto +func (fd *File) Edition() int32 { return int32(fd.L1.Edition) } +func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } +func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } +func (fd *File) IsPlaceholder() bool { return false } func (fd *File) Options() protoreflect.ProtoMessage { if f := fd.lazyInit().Options; f != nil { return f() @@ -202,6 +206,9 @@ func (ed *Enum) lazyInit() *EnumL2 { ed.L0.ParentFile.lazyInit() // implicitly initializes L2 return ed.L2 } +func (ed *Enum) IsClosed() bool { + return !ed.L1.EditionFeatures.IsOpenEnum +} func (ed *EnumValue) Options() protoreflect.ProtoMessage { if f := ed.L1.Options; f != nil { @@ -251,10 +258,6 @@ type ( StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto IsWeak bool // promoted from google.protobuf.FieldOptions - HasPacked bool // promoted from google.protobuf.FieldOptions - IsPacked bool // promoted from google.protobuf.FieldOptions - HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions - EnforceUTF8 bool // promoted from google.protobuf.FieldOptions Default defaultValue ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields Enum protoreflect.EnumDescriptor @@ -331,8 +334,7 @@ func (fd *Field) HasPresence() bool { if fd.L1.Cardinality == protoreflect.Repeated { return false } - explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence - return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil + return fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil } func (fd *Field) HasOptionalKeyword() bool { return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional @@ -345,14 +347,7 @@ func (fd *Field) IsPacked() bool { case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: return false } - if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { - return fd.L1.EditionFeatures.IsPacked - } - if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { - // proto3 repeated fields are packed by default. - return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked + return fd.L1.EditionFeatures.IsPacked } func (fd *Field) IsExtension() bool { return false } func (fd *Field) IsWeak() bool { return fd.L1.IsWeak } @@ -399,13 +394,7 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} // WARNING: This method is exempt from the compatibility promise and may be // removed in the future without warning. func (fd *Field) EnforceUTF8() bool { - if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { - return fd.L1.EditionFeatures.IsUTF8Validated - } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } - return fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 + return fd.L1.EditionFeatures.IsUTF8Validated } func (od *Oneof) IsSynthetic() bool { @@ -438,7 +427,6 @@ type ( Options func() protoreflect.ProtoMessage StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto - IsPacked bool // promoted from google.protobuf.FieldOptions Default defaultValue Enum protoreflect.EnumDescriptor Message protoreflect.MessageDescriptor @@ -461,7 +449,16 @@ func (xd *Extension) HasPresence() bool { return xd.L1.Cardi func (xd *Extension) HasOptionalKeyword() bool { return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional } -func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked } +func (xd *Extension) IsPacked() bool { + if xd.L1.Cardinality != protoreflect.Repeated { + return false + } + switch xd.L1.Kind { + case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: + return false + } + return xd.L1.EditionFeatures.IsPacked +} func (xd *Extension) IsExtension() bool { return true } func (xd *Extension) IsWeak() bool { return false } func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated } @@ -542,8 +539,9 @@ func (md *Method) ProtoInternal(pragma.DoNotImplement) {} // Surrogate files are can be used to create standalone descriptors // where the syntax is only information derived from the parent file. var ( - SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} - SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} + SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} + SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} + SurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}} ) type ( @@ -585,6 +583,34 @@ func (s *stringName) InitJSON(name string) { s.nameJSON = name } +// Returns true if this field is structured like the synthetic field of a proto2 +// group. This allows us to expand our treatment of delimited fields without +// breaking proto2 files that have been upgraded to editions. +func isGroupLike(fd protoreflect.FieldDescriptor) bool { + // Groups are always group types. + if fd.Kind() != protoreflect.GroupKind { + return false + } + + // Group fields are always the lowercase type name. + if strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) { + return false + } + + // Groups could only be defined in the same file they're used. + if fd.Message().ParentFile() != fd.ParentFile() { + return false + } + + // Group messages are always defined in the same scope as the field. File + // level extensions will compare NULL == NULL here, which is why the file + // comparison above is necessary to ensure both come from the same file. + if fd.IsExtension() { + return fd.Parent() == fd.Message().Parent() + } + return fd.ContainingMessage() == fd.Message().Parent() +} + func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { s.once.Do(func() { if fd.IsExtension() { @@ -605,7 +631,7 @@ func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { // Format the text name. s.nameText = string(fd.Name()) - if fd.Kind() == protoreflect.GroupKind { + if isGroupLike(fd) { s.nameText = string(fd.Message().Name()) } } diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go index 237e64fd2..3bc3b1cdf 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go @@ -113,8 +113,10 @@ func (fd *File) unmarshalSeed(b []byte) { switch string(v) { case "proto2": fd.L1.Syntax = protoreflect.Proto2 + fd.L1.Edition = EditionProto2 case "proto3": fd.L1.Syntax = protoreflect.Proto3 + fd.L1.Edition = EditionProto3 case "editions": fd.L1.Syntax = protoreflect.Editions default: @@ -177,11 +179,10 @@ func (fd *File) unmarshalSeed(b []byte) { // If syntax is missing, it is assumed to be proto2. if fd.L1.Syntax == 0 { fd.L1.Syntax = protoreflect.Proto2 + fd.L1.Edition = EditionProto2 } - if fd.L1.Syntax == protoreflect.Editions { - fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) - } + fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) // Parse editions features from options if any if options != nil { @@ -267,6 +268,7 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protorefl ed.L0.ParentFile = pf ed.L0.Parent = pd ed.L0.Index = i + ed.L1.EditionFeatures = featuresFromParentDesc(ed.Parent()) var numValues int for b := b; len(b) > 0; { @@ -443,6 +445,7 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd prot xd.L0.ParentFile = pf xd.L0.Parent = pd xd.L0.Index = i + xd.L1.EditionFeatures = featuresFromParentDesc(pd) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) @@ -467,6 +470,38 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd prot xd.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.FieldDescriptorProto_Extendee_field_number: xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v)) + case genid.FieldDescriptorProto_Options_field_number: + xd.unmarshalOptions(v) + } + default: + m := protowire.ConsumeFieldValue(num, typ, b) + b = b[m:] + } + } + + if xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { + xd.L1.Kind = protoreflect.GroupKind + } +} + +func (xd *Extension) unmarshalOptions(b []byte) { + for len(b) > 0 { + num, typ, n := protowire.ConsumeTag(b) + b = b[n:] + switch typ { + case protowire.VarintType: + v, m := protowire.ConsumeVarint(b) + b = b[m:] + switch num { + case genid.FieldOptions_Packed_field_number: + xd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v) + } + case protowire.BytesType: + v, m := protowire.ConsumeBytes(b) + b = b[m:] + switch num { + case genid.FieldOptions_Features_field_number: + xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) } default: m := protowire.ConsumeFieldValue(num, typ, b) diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go index 482a61cc1..570181eb4 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go @@ -466,10 +466,10 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref b = b[m:] } } - if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { + if fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { fd.L1.Kind = protoreflect.GroupKind } - if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { + if fd.L1.EditionFeatures.IsLegacyRequired { fd.L1.Cardinality = protoreflect.Required } if rawTypeName != nil { @@ -496,13 +496,11 @@ func (fd *Field) unmarshalOptions(b []byte) { b = b[m:] switch num { case genid.FieldOptions_Packed_field_number: - fd.L1.HasPacked = true - fd.L1.IsPacked = protowire.DecodeBool(v) + fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v) case genid.FieldOptions_Weak_field_number: fd.L1.IsWeak = protowire.DecodeBool(v) case FieldOptions_EnforceUTF8: - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) + fd.L1.EditionFeatures.IsUTF8Validated = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) @@ -548,7 +546,6 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { var rawTypeName []byte var rawOptions []byte - xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) xd.L2 = new(ExtensionL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) @@ -572,7 +569,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { case genid.FieldDescriptorProto_TypeName_field_number: rawTypeName = v case genid.FieldDescriptorProto_Options_field_number: - xd.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } default: @@ -580,12 +576,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { b = b[m:] } } - if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { - xd.L1.Kind = protoreflect.GroupKind - } - if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { - xd.L1.Cardinality = protoreflect.Required - } if rawTypeName != nil { name := makeFullName(sb, rawTypeName) switch xd.L1.Kind { @@ -598,32 +588,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions) } -func (xd *Extension) unmarshalOptions(b []byte) { - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) - b = b[n:] - switch typ { - case protowire.VarintType: - v, m := protowire.ConsumeVarint(b) - b = b[m:] - switch num { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } - case protowire.BytesType: - v, m := protowire.ConsumeBytes(b) - b = b[m:] - switch num { - case genid.FieldOptions_Features_field_number: - xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) - } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] - } - } -} - func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) { var rawMethods [][]byte var rawOptions []byte diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go index 0375a49d4..d1e16a26d 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go @@ -14,9 +14,13 @@ import ( ) var defaultsCache = make(map[Edition]EditionFeatures) +var defaultsKeys = []Edition{} func init() { unmarshalEditionDefaults(editiondefaults.Defaults) + SurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2) + SurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3) + SurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023) } func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { @@ -110,6 +114,7 @@ func unmarshalEditionDefault(b []byte) { } } defaultsCache[ed] = fs + defaultsKeys = append(defaultsKeys, ed) } func unmarshalEditionDefaults(b []byte) { @@ -135,8 +140,15 @@ func unmarshalEditionDefaults(b []byte) { } func getFeaturesFor(ed Edition) EditionFeatures { - if def, ok := defaultsCache[ed]; ok { - return def + match := EditionUnknown + for _, key := range defaultsKeys { + if key > ed { + break + } + match = key + } + if match == EditionUnknown { + panic(fmt.Sprintf("unsupported edition: %v", ed)) } - panic(fmt.Sprintf("unsupported edition: %v", ed)) + return defaultsCache[match] } diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go index 28240ebc5..bfb3b8417 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go @@ -63,6 +63,7 @@ func (e PlaceholderEnum) Options() protoreflect.ProtoMessage { return des func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues } func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames } func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges } +func (e PlaceholderEnum) IsClosed() bool { return false } func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return } func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return } diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go index fd9015e8e..9a652a2b4 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go @@ -10,7 +10,7 @@ import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) -const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" +const File_google_protobuf_go_features_proto = "google/protobuf/go_features.proto" // Names for google.protobuf.GoFeatures. const ( diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_field.go b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go index 3fadd241e..78ee47e44 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go @@ -233,9 +233,15 @@ func sizeMessageInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { } func appendMessageInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { + calculatedSize := f.mi.sizePointer(p.Elem(), opts) b = protowire.AppendVarint(b, f.wiretag) - b = protowire.AppendVarint(b, uint64(f.mi.sizePointer(p.Elem(), opts))) - return f.mi.marshalAppendPointer(b, p.Elem(), opts) + b = protowire.AppendVarint(b, uint64(calculatedSize)) + before := len(b) + b, err := f.mi.marshalAppendPointer(b, p.Elem(), opts) + if measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize) + } + return b, err } func consumeMessageInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { @@ -262,14 +268,21 @@ func isInitMessageInfo(p pointer, f *coderFieldInfo) error { return f.mi.checkInitializedPointer(p.Elem()) } -func sizeMessage(m proto.Message, tagsize int, _ marshalOptions) int { - return protowire.SizeBytes(proto.Size(m)) + tagsize +func sizeMessage(m proto.Message, tagsize int, opts marshalOptions) int { + return protowire.SizeBytes(opts.Options().Size(m)) + tagsize } func appendMessage(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { + mopts := opts.Options() + calculatedSize := mopts.Size(m) b = protowire.AppendVarint(b, wiretag) - b = protowire.AppendVarint(b, uint64(proto.Size(m))) - return opts.Options().MarshalAppend(b, m) + b = protowire.AppendVarint(b, uint64(calculatedSize)) + before := len(b) + b, err := mopts.MarshalAppend(b, m) + if measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize) + } + return b, err } func consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { @@ -405,8 +418,8 @@ func consumeGroupType(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf return f.mi.unmarshalPointer(b, p.Elem(), f.num, opts) } -func sizeGroup(m proto.Message, tagsize int, _ marshalOptions) int { - return 2*tagsize + proto.Size(m) +func sizeGroup(m proto.Message, tagsize int, opts marshalOptions) int { + return 2*tagsize + opts.Options().Size(m) } func appendGroup(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { @@ -482,10 +495,14 @@ func appendMessageSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshal b = protowire.AppendVarint(b, f.wiretag) siz := f.mi.sizePointer(v, opts) b = protowire.AppendVarint(b, uint64(siz)) + before := len(b) b, err = f.mi.marshalAppendPointer(b, v, opts) if err != nil { return b, err } + if measuredSize := len(b) - before; siz != measuredSize { + return nil, errors.MismatchedSizeCalculation(siz, measuredSize) + } } return b, nil } @@ -520,28 +537,34 @@ func isInitMessageSliceInfo(p pointer, f *coderFieldInfo) error { return nil } -func sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, _ marshalOptions) int { +func sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, opts marshalOptions) int { + mopts := opts.Options() s := p.PointerSlice() n := 0 for _, v := range s { m := asMessage(v.AsValueOf(goType.Elem())) - n += protowire.SizeBytes(proto.Size(m)) + tagsize + n += protowire.SizeBytes(mopts.Size(m)) + tagsize } return n } func appendMessageSlice(b []byte, p pointer, wiretag uint64, goType reflect.Type, opts marshalOptions) ([]byte, error) { + mopts := opts.Options() s := p.PointerSlice() var err error for _, v := range s { m := asMessage(v.AsValueOf(goType.Elem())) b = protowire.AppendVarint(b, wiretag) - siz := proto.Size(m) + siz := mopts.Size(m) b = protowire.AppendVarint(b, uint64(siz)) - b, err = opts.Options().MarshalAppend(b, m) + before := len(b) + b, err = mopts.MarshalAppend(b, m) if err != nil { return b, err } + if measuredSize := len(b) - before; siz != measuredSize { + return nil, errors.MismatchedSizeCalculation(siz, measuredSize) + } } return b, nil } @@ -582,11 +605,12 @@ func isInitMessageSlice(p pointer, goType reflect.Type) error { // Slices of messages func sizeMessageSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { + mopts := opts.Options() list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() - n += protowire.SizeBytes(proto.Size(m)) + tagsize + n += protowire.SizeBytes(mopts.Size(m)) + tagsize } return n } @@ -597,13 +621,17 @@ func appendMessageSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() b = protowire.AppendVarint(b, wiretag) - siz := proto.Size(m) + siz := mopts.Size(m) b = protowire.AppendVarint(b, uint64(siz)) + before := len(b) var err error b, err = mopts.MarshalAppend(b, m) if err != nil { return b, err } + if measuredSize := len(b) - before; siz != measuredSize { + return nil, errors.MismatchedSizeCalculation(siz, measuredSize) + } } return b, nil } @@ -651,11 +679,12 @@ var coderMessageSliceValue = valueCoderFuncs{ } func sizeGroupSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { + mopts := opts.Options() list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() - n += 2*tagsize + proto.Size(m) + n += 2*tagsize + mopts.Size(m) } return n } @@ -738,12 +767,13 @@ func makeGroupSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) } } -func sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, _ marshalOptions) int { +func sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, opts marshalOptions) int { + mopts := opts.Options() s := p.PointerSlice() n := 0 for _, v := range s { m := asMessage(v.AsValueOf(messageType.Elem())) - n += 2*tagsize + proto.Size(m) + n += 2*tagsize + mopts.Size(m) } return n } diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go index 111b9d16f..fb35f0bae 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go @@ -9,6 +9,7 @@ import ( "sort" "google.golang.org/protobuf/encoding/protowire" + "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/reflect/protoreflect" ) @@ -240,11 +241,16 @@ func appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coder size += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) size += mapi.valFuncs.size(val, mapValTagSize, opts) b = protowire.AppendVarint(b, uint64(size)) + before := len(b) b, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts) if err != nil { return nil, err } - return mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts) + b, err = mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts) + if measuredSize := len(b) - before; size != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(size, measuredSize) + } + return b, err } else { key := mapi.conv.keyConv.PBValueOf(keyrv).MapKey() val := pointerOfValue(valrv) @@ -259,7 +265,12 @@ func appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coder } b = protowire.AppendVarint(b, mapi.valWiretag) b = protowire.AppendVarint(b, uint64(valSize)) - return f.mi.marshalAppendPointer(b, val, opts) + before := len(b) + b, err = f.mi.marshalAppendPointer(b, val, opts) + if measuredSize := len(b) - before; valSize != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(valSize, measuredSize) + } + return b, err } } diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go index c2a803bb2..c1c33d005 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go @@ -167,6 +167,7 @@ func aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor { ed := &filedesc.Enum{L2: new(filedesc.EnumL2)} ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github.aaakk.us.kg.user.repo.MyEnum ed.L0.ParentFile = filedesc.SurrogateProto3 + ed.L1.EditionFeatures = ed.L0.ParentFile.L1.EditionFeatures ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{}) // TODO: Use the presence of a UnmarshalJSON method to determine proto2? diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go index 87b30d050..6e8677ee6 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go @@ -118,7 +118,7 @@ func (xi *ExtensionInfo) initFromLegacy() { xd.L1.Number = protoreflect.FieldNumber(xi.Field) xd.L1.Cardinality = fd.L1.Cardinality xd.L1.Kind = fd.L1.Kind - xd.L2.IsPacked = fd.L1.IsPacked + xd.L1.EditionFeatures = fd.L1.EditionFeatures xd.L2.Default = fd.L1.Default xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType) xd.L2.Enum = ed diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go index 9ab091086..b649f1124 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go @@ -7,7 +7,7 @@ package impl import ( "bytes" "compress/gzip" - "io/ioutil" + "io" "sync" "google.golang.org/protobuf/internal/filedesc" @@ -51,7 +51,7 @@ func legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor { if err != nil { panic(err) } - b2, err := ioutil.ReadAll(zr) + b2, err := io.ReadAll(zr) if err != nil { panic(err) } diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go index 2ab2c6297..950e9a1fe 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go @@ -204,6 +204,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName } } + md.L1.EditionFeatures = md.L0.ParentFile.L1.EditionFeatures // Obtain a list of oneof wrapper types. var oneofWrappers []reflect.Type methods := make([]reflect.Method, 0, 2) @@ -250,6 +251,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName od := &md.L2.Oneofs.List[n] od.L0.FullName = md.FullName().Append(protoreflect.Name(tag)) od.L0.ParentFile = md.L0.ParentFile + od.L1.EditionFeatures = md.L1.EditionFeatures od.L0.Parent = md od.L0.Index = n @@ -260,6 +262,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName aberrantAppendField(md, f.Type, tag, "", "") fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1] fd.L1.ContainingOneof = od + fd.L1.EditionFeatures = od.L1.EditionFeatures od.L1.Fields.List = append(od.L1.Fields.List, fd) } } @@ -307,14 +310,14 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, fd.L0.Parent = md fd.L0.Index = n - if fd.L1.IsWeak || fd.L1.HasPacked { + if fd.L1.IsWeak || fd.L1.EditionFeatures.IsPacked { fd.L1.Options = func() protoreflect.ProtoMessage { opts := descopts.Field.ProtoReflect().New() if fd.L1.IsWeak { opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true)) } - if fd.L1.HasPacked { - opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked)) + if fd.L1.EditionFeatures.IsPacked { + opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked)) } return opts.Interface() } @@ -344,6 +347,7 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, md2.L0.ParentFile = md.L0.ParentFile md2.L0.Parent = md md2.L0.Index = n + md2.L1.EditionFeatures = md.L1.EditionFeatures md2.L1.IsMapEntry = true md2.L2.Options = func() protoreflect.ProtoMessage { diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go index d9ea010be..a6f0dbdad 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go @@ -247,11 +247,10 @@ func (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.V } } } -func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { +func (m *extensionMap) Has(xd protoreflect.ExtensionTypeDescriptor) (ok bool) { if m == nil { return false } - xd := xt.TypeDescriptor() x, ok := (*m)[int32(xd.Number())] if !ok { return false @@ -261,25 +260,22 @@ func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { return x.Value().List().Len() > 0 case xd.IsMap(): return x.Value().Map().Len() > 0 - case xd.Message() != nil: - return x.Value().Message().IsValid() } return true } -func (m *extensionMap) Clear(xt protoreflect.ExtensionType) { - delete(*m, int32(xt.TypeDescriptor().Number())) +func (m *extensionMap) Clear(xd protoreflect.ExtensionTypeDescriptor) { + delete(*m, int32(xd.Number())) } -func (m *extensionMap) Get(xt protoreflect.ExtensionType) protoreflect.Value { - xd := xt.TypeDescriptor() +func (m *extensionMap) Get(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value { if m != nil { if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } } - return xt.Zero() + return xd.Type().Zero() } -func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) { - xd := xt.TypeDescriptor() +func (m *extensionMap) Set(xd protoreflect.ExtensionTypeDescriptor, v protoreflect.Value) { + xt := xd.Type() isValid := true switch { case !xt.IsValidValue(v): @@ -292,7 +288,7 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) isValid = v.Message().IsValid() } if !isValid { - panic(fmt.Sprintf("%v: assigning invalid value", xt.TypeDescriptor().FullName())) + panic(fmt.Sprintf("%v: assigning invalid value", xd.FullName())) } if *m == nil { @@ -302,16 +298,15 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) x.Set(xt, v) (*m)[int32(xd.Number())] = x } -func (m *extensionMap) Mutable(xt protoreflect.ExtensionType) protoreflect.Value { - xd := xt.TypeDescriptor() +func (m *extensionMap) Mutable(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value { if xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() { panic("invalid Mutable on field with non-composite type") } if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } - v := xt.New() - m.Set(xt, v) + v := xd.Type().New() + m.Set(xd, v) return v } @@ -428,7 +423,7 @@ func (m *messageIfaceWrapper) protoUnwrap() interface{} { // checkField verifies that the provided field descriptor is valid. // Exactly one of the returned values is populated. -func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionType) { +func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionTypeDescriptor) { var fi *fieldInfo if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) { fi = mi.denseFields[n] @@ -457,7 +452,7 @@ func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, if !ok { panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName())) } - return nil, xtd.Type() + return nil, xtd } panic(fmt.Sprintf("field %v is invalid", fd.FullName())) } diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go index 741d6e5b6..29ba6bd35 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go @@ -27,8 +27,9 @@ func (m *messageState) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageState) ProtoMethods() *protoiface.Methods { - m.messageInfo().init() - return &m.messageInfo().methods + mi := m.messageInfo() + mi.init() + return &mi.methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code @@ -41,8 +42,9 @@ func (m *messageState) ProtoMessageInfo() *MessageInfo { } func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - m.messageInfo().init() - for _, ri := range m.messageInfo().rangeInfos { + mi := m.messageInfo() + mi.init() + for _, ri := range mi.rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { @@ -52,77 +54,86 @@ func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.V } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { - fi := m.messageInfo().fields[n] + fi := mi.fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } - m.messageInfo().extensionMap(m.pointer()).Range(f) + mi.extensionMap(m.pointer()).Range(f) } func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.has(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Has(xt) + return mi.extensionMap(m.pointer()).Has(xd) } } func (m *messageState) Clear(fd protoreflect.FieldDescriptor) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.clear(m.pointer()) } else { - m.messageInfo().extensionMap(m.pointer()).Clear(xt) + mi.extensionMap(m.pointer()).Clear(xd) } } func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.get(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Get(xt) + return mi.extensionMap(m.pointer()).Get(xd) } } func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { - m.messageInfo().extensionMap(m.pointer()).Set(xt, v) + mi.extensionMap(m.pointer()).Set(xd, v) } } func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) + return mi.extensionMap(m.pointer()).Mutable(xd) } } func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.newField() } else { - return xt.New() + return xd.Type().New() } } func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - m.messageInfo().init() - if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { + mi := m.messageInfo() + mi.init() + if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageState) GetUnknown() protoreflect.RawFields { - m.messageInfo().init() - return m.messageInfo().getUnknown(m.pointer()) + mi := m.messageInfo() + mi.init() + return mi.getUnknown(m.pointer()) } func (m *messageState) SetUnknown(b protoreflect.RawFields) { - m.messageInfo().init() - m.messageInfo().setUnknown(m.pointer(), b) + mi := m.messageInfo() + mi.init() + mi.setUnknown(m.pointer(), b) } func (m *messageState) IsValid() bool { return !m.pointer().IsNil() @@ -147,8 +158,9 @@ func (m *messageReflectWrapper) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods { - m.messageInfo().init() - return &m.messageInfo().methods + mi := m.messageInfo() + mi.init() + return &mi.methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code @@ -161,8 +173,9 @@ func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo { } func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - m.messageInfo().init() - for _, ri := range m.messageInfo().rangeInfos { + mi := m.messageInfo() + mi.init() + for _, ri := range mi.rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { @@ -172,77 +185,86 @@ func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, proto } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { - fi := m.messageInfo().fields[n] + fi := mi.fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } - m.messageInfo().extensionMap(m.pointer()).Range(f) + mi.extensionMap(m.pointer()).Range(f) } func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.has(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Has(xt) + return mi.extensionMap(m.pointer()).Has(xd) } } func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.clear(m.pointer()) } else { - m.messageInfo().extensionMap(m.pointer()).Clear(xt) + mi.extensionMap(m.pointer()).Clear(xd) } } func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.get(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Get(xt) + return mi.extensionMap(m.pointer()).Get(xd) } } func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { - m.messageInfo().extensionMap(m.pointer()).Set(xt, v) + mi.extensionMap(m.pointer()).Set(xd, v) } } func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) + return mi.extensionMap(m.pointer()).Mutable(xd) } } func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.newField() } else { - return xt.New() + return xd.Type().New() } } func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - m.messageInfo().init() - if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { + mi := m.messageInfo() + mi.init() + if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields { - m.messageInfo().init() - return m.messageInfo().getUnknown(m.pointer()) + mi := m.messageInfo() + mi.init() + return mi.getUnknown(m.pointer()) } func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) { - m.messageInfo().init() - m.messageInfo().setUnknown(m.pointer(), b) + mi := m.messageInfo() + mi.init() + mi.setUnknown(m.pointer(), b) } func (m *messageReflectWrapper) IsValid() bool { return !m.pointer().IsNil() diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go index a50fcfb49..fc6bfc396 100644 --- a/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/vendor/google.golang.org/protobuf/internal/version/version.go @@ -51,7 +51,7 @@ import ( // 10. Send out the CL for review and submit it. const ( Major = 1 - Minor = 33 + Minor = 34 Patch = 0 PreRelease = "" ) diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go index e5b03b567..d75a6534c 100644 --- a/vendor/google.golang.org/protobuf/proto/decode.go +++ b/vendor/google.golang.org/protobuf/proto/decode.go @@ -51,6 +51,8 @@ type UnmarshalOptions struct { // Unmarshal parses the wire-format message in b and places the result in m. // The provided message must be mutable (e.g., a non-nil pointer to a message). +// +// See the [UnmarshalOptions] type if you need more control. func Unmarshal(b []byte, m Message) error { _, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect()) return err diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go index 4fed202f9..1f847bcc3 100644 --- a/vendor/google.golang.org/protobuf/proto/encode.go +++ b/vendor/google.golang.org/protobuf/proto/encode.go @@ -5,12 +5,17 @@ package proto import ( + "errors" + "fmt" + "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" + + protoerrors "google.golang.org/protobuf/internal/errors" ) // MarshalOptions configures the marshaler. @@ -70,7 +75,32 @@ type MarshalOptions struct { UseCachedSize bool } +// flags turns the specified MarshalOptions (user-facing) into +// protoiface.MarshalInputFlags (used internally by the marshaler). +// +// See impl.marshalOptions.Options for the inverse operation. +func (o MarshalOptions) flags() protoiface.MarshalInputFlags { + var flags protoiface.MarshalInputFlags + + // Note: o.AllowPartial is always forced to true by MarshalOptions.marshal, + // which is why it is not a part of MarshalInputFlags. + + if o.Deterministic { + flags |= protoiface.MarshalDeterministic + } + + if o.UseCachedSize { + flags |= protoiface.MarshalUseCachedSize + } + + return flags +} + // Marshal returns the wire-format encoding of m. +// +// This is the most common entry point for encoding a Protobuf message. +// +// See the [MarshalOptions] type if you need more control. func Marshal(m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to output. if m == nil { @@ -116,6 +146,9 @@ func emptyBytesForMessage(m Message) []byte { // MarshalAppend appends the wire-format encoding of m to b, // returning the result. +// +// This is a less common entry point than [Marshal], which is only needed if you +// need to supply your own buffers for performance reasons. func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to append. if m == nil { @@ -145,12 +178,7 @@ func (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoifac in := protoiface.MarshalInput{ Message: m, Buf: b, - } - if o.Deterministic { - in.Flags |= protoiface.MarshalDeterministic - } - if o.UseCachedSize { - in.Flags |= protoiface.MarshalUseCachedSize + Flags: o.flags(), } if methods.Size != nil { sout := methods.Size(protoiface.SizeInput{ @@ -168,6 +196,10 @@ func (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoifac out.Buf, err = o.marshalMessageSlow(b, m) } if err != nil { + var mismatch *protoerrors.SizeMismatchError + if errors.As(err, &mismatch) { + return out, fmt.Errorf("marshaling %s: %v", string(m.Descriptor().FullName()), err) + } return out, err } if allowPartial { diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go index 17899a3a7..c9c8721a6 100644 --- a/vendor/google.golang.org/protobuf/proto/extension.go +++ b/vendor/google.golang.org/protobuf/proto/extension.go @@ -11,18 +11,21 @@ import ( // HasExtension reports whether an extension field is populated. // It returns false if m is invalid or if xt does not extend m. func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - // Treat nil message interface as an empty message; no populated fields. - if m == nil { + // Treat nil message interface or descriptor as an empty message; no populated + // fields. + if m == nil || xt == nil { return false } // As a special-case, we reports invalid or mismatching descriptors // as always not being populated (since they aren't). - if xt == nil || m.ProtoReflect().Descriptor() != xt.TypeDescriptor().ContainingMessage() { + mr := m.ProtoReflect() + xd := xt.TypeDescriptor() + if mr.Descriptor() != xd.ContainingMessage() { return false } - return m.ProtoReflect().Has(xt.TypeDescriptor()) + return mr.Has(xd) } // ClearExtension clears an extension field such that subsequent diff --git a/vendor/google.golang.org/protobuf/proto/messageset.go b/vendor/google.golang.org/protobuf/proto/messageset.go index 312d5d45c..575d14831 100644 --- a/vendor/google.golang.org/protobuf/proto/messageset.go +++ b/vendor/google.golang.org/protobuf/proto/messageset.go @@ -47,11 +47,16 @@ func (o MarshalOptions) marshalMessageSet(b []byte, m protoreflect.Message) ([]b func (o MarshalOptions) marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { b = messageset.AppendFieldStart(b, fd.Number()) b = protowire.AppendTag(b, messageset.FieldMessage, protowire.BytesType) - b = protowire.AppendVarint(b, uint64(o.Size(value.Message().Interface()))) + calculatedSize := o.Size(value.Message().Interface()) + b = protowire.AppendVarint(b, uint64(calculatedSize)) + before := len(b) b, err := o.marshalMessage(b, value.Message()) if err != nil { return b, err } + if measuredSize := len(b) - before; calculatedSize != measuredSize { + return nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize) + } b = messageset.AppendFieldEnd(b) return b, nil } diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go index f1692b49b..052fb5ae3 100644 --- a/vendor/google.golang.org/protobuf/proto/size.go +++ b/vendor/google.golang.org/protobuf/proto/size.go @@ -34,6 +34,7 @@ func (o MarshalOptions) size(m protoreflect.Message) (size int) { if methods != nil && methods.Size != nil { out := methods.Size(protoiface.SizeInput{ Message: m, + Flags: o.flags(), }) return out.Size } @@ -42,6 +43,7 @@ func (o MarshalOptions) size(m protoreflect.Message) (size int) { // This case is mainly used for legacy types with a Marshal method. out, _ := methods.Marshal(protoiface.MarshalInput{ Message: m, + Flags: o.flags(), }) return len(out.Buf) } diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go index baa0cc621..8fbecb4f5 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go @@ -13,6 +13,7 @@ package protodesc import ( + "google.golang.org/protobuf/internal/editionssupport" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/pragma" @@ -91,15 +92,17 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot switch fd.GetSyntax() { case "proto2", "": f.L1.Syntax = protoreflect.Proto2 + f.L1.Edition = filedesc.EditionProto2 case "proto3": f.L1.Syntax = protoreflect.Proto3 + f.L1.Edition = filedesc.EditionProto3 case "editions": f.L1.Syntax = protoreflect.Editions f.L1.Edition = fromEditionProto(fd.GetEdition()) default: return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) } - if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { + if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < editionssupport.Minimum || fd.GetEdition() > editionssupport.Maximum) { return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) } f.L1.Path = fd.GetName() @@ -114,9 +117,7 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot opts = proto.Clone(opts).(*descriptorpb.FileOptions) f.L2.Options = func() protoreflect.ProtoMessage { return opts } } - if f.L1.Syntax == protoreflect.Editions { - initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) - } + initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) for _, i := range fd.GetPublicDependency() { @@ -219,10 +220,10 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil { return nil, err } - if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil { + if err := validateMessageDeclarations(f, f.L1.Messages.List, fd.GetMessageType()); err != nil { return nil, err } - if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil { + if err := validateExtensionDeclarations(f, f.L1.Extensions.List, fd.GetExtension()); err != nil { return nil, err } diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go index b3278163c..856175542 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go @@ -69,9 +69,7 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { return nil, err } - if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { - m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) - } + m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) if opts := md.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.MessageOptions) m.L2.Options = func() protoreflect.ProtoMessage { return opts } @@ -146,13 +144,15 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil { return nil, err } + f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) f.L1.IsProto3Optional = fd.GetProto3Optional() if opts := fd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.FieldOptions) f.L1.Options = func() protoreflect.ProtoMessage { return opts } f.L1.IsWeak = opts.GetWeak() - f.L1.HasPacked = opts.Packed != nil - f.L1.IsPacked = opts.GetPacked() + if opts.Packed != nil { + f.L1.EditionFeatures.IsPacked = opts.GetPacked() + } } f.L1.Number = protoreflect.FieldNumber(fd.GetNumber()) f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel()) @@ -163,32 +163,12 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc f.L1.StringName.InitJSON(fd.GetJsonName()) } - if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { - f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) - - if f.L1.EditionFeatures.IsLegacyRequired { - f.L1.Cardinality = protoreflect.Required - } - // We reuse the existing field because the old option `[packed = - // true]` is mutually exclusive with the editions feature. - if canBePacked(fd) { - f.L1.HasPacked = true - f.L1.IsPacked = f.L1.EditionFeatures.IsPacked - } - - // We pretend this option is always explicitly set because the only - // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 - // or to return the appropriate default. - // When using editions we either parse the option or resolve the - // appropriate default here (instead of later when this option is - // requested from the descriptor). - // In proto2/proto3 syntax HasEnforceUTF8 might be false. - f.L1.HasEnforceUTF8 = true - f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated + if f.L1.EditionFeatures.IsLegacyRequired { + f.L1.Cardinality = protoreflect.Required + } - if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { - f.L1.Kind = protoreflect.GroupKind - } + if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { + f.L1.Kind = protoreflect.GroupKind } } return fs, nil @@ -201,12 +181,10 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil { return nil, err } + o.L1.EditionFeatures = mergeEditionFeatures(parent, od.GetOptions().GetFeatures()) if opts := od.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.OneofOptions) o.L1.Options = func() protoreflect.ProtoMessage { return opts } - if parent.Syntax() == protoreflect.Editions { - o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) - } } } return os, nil @@ -220,10 +198,13 @@ func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescript if x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil { return nil, err } + x.L1.EditionFeatures = mergeEditionFeatures(parent, xd.GetOptions().GetFeatures()) if opts := xd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.FieldOptions) x.L2.Options = func() protoreflect.ProtoMessage { return opts } - x.L2.IsPacked = opts.GetPacked() + if opts.Packed != nil { + x.L1.EditionFeatures.IsPacked = opts.GetPacked() + } } x.L1.Number = protoreflect.FieldNumber(xd.GetNumber()) x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel()) diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go index e4dcaf876..c62930867 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go @@ -45,11 +45,11 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri if allowAlias && !foundAlias { return errors.New("enum %q allows aliases, but none were found", e.FullName()) } - if e.Syntax() == protoreflect.Proto3 { + if !e.IsClosed() { if v := e.Values().Get(0); v.Number() != 0 { - return errors.New("enum %q using proto3 semantics must have zero number for the first value", v.FullName()) + return errors.New("enum %q using open semantics must have zero number for the first value", v.FullName()) } - // Verify that value names in proto3 do not conflict if the + // Verify that value names in open enums do not conflict if the // case-insensitive prefix is removed. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055 names := map[string]protoreflect.EnumValueDescriptor{} @@ -58,7 +58,7 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri v1 := e.Values().Get(i) s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix)) if v2, ok := names[s]; ok && v1.Number() != v2.Number() { - return errors.New("enum %q using proto3 semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) + return errors.New("enum %q using open semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) } names[s] = v1 } @@ -80,7 +80,9 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri return nil } -func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { +func validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { + // There are a few limited exceptions only for proto3 + isProto3 := file.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) for i, md := range mds { m := &ms[i] @@ -107,10 +109,10 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc if isMessageSet && !flags.ProtoLegacy { return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) } - if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { + if isMessageSet && (isProto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) } - if m.Syntax() == protoreflect.Proto3 { + if isProto3 { if m.ExtensionRanges().Len() > 0 { return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName()) } @@ -149,7 +151,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee()) } if f.L1.IsProto3Optional { - if f.Syntax() != protoreflect.Proto3 { + if !isProto3 { return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName()) } if f.Cardinality() != protoreflect.Optional { @@ -162,26 +164,29 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc if f.IsWeak() && !flags.ProtoLegacy { return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName()) } - if f.IsWeak() && (f.Syntax() != protoreflect.Proto2 || !isOptionalMessage(f) || f.ContainingOneof() != nil) { + if f.IsWeak() && (!f.HasPresence() || !isOptionalMessage(f) || f.ContainingOneof() != nil) { return errors.New("message field %q may only be weak for an optional message", f.FullName()) } if f.IsPacked() && !isPackable(f) { return errors.New("message field %q is not packable", f.FullName()) } - if err := checkValidGroup(f); err != nil { + if err := checkValidGroup(file, f); err != nil { return errors.New("message field %q is an invalid group: %v", f.FullName(), err) } if err := checkValidMap(f); err != nil { return errors.New("message field %q is an invalid map: %v", f.FullName(), err) } - if f.Syntax() == protoreflect.Proto3 { + if isProto3 { if f.Cardinality() == protoreflect.Required { return errors.New("message field %q using proto3 semantics cannot be required", f.FullName()) } - if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().Syntax() != protoreflect.Proto3 { - return errors.New("message field %q using proto3 semantics may only depend on a proto3 enum", f.FullName()) + if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() { + return errors.New("message field %q using proto3 semantics may only depend on open enums", f.FullName()) } } + if f.Cardinality() == protoreflect.Optional && !f.HasPresence() && f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() { + return errors.New("message field %q with implicit presence may only use open enums", f.FullName()) + } } seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs for j := range md.GetOneofDecl() { @@ -215,17 +220,17 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil { return err } - if err := validateMessageDeclarations(m.L1.Messages.List, md.GetNestedType()); err != nil { + if err := validateMessageDeclarations(file, m.L1.Messages.List, md.GetNestedType()); err != nil { return err } - if err := validateExtensionDeclarations(m.L1.Extensions.List, md.GetExtension()); err != nil { + if err := validateExtensionDeclarations(file, m.L1.Extensions.List, md.GetExtension()); err != nil { return err } } return nil } -func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { +func validateExtensionDeclarations(f *filedesc.File, xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { for i, xd := range xds { x := &xs[i] // NOTE: Avoid using the IsValid method since extensions to MessageSet @@ -267,13 +272,13 @@ func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb. if x.IsPacked() && !isPackable(x) { return errors.New("extension field %q is not packable", x.FullName()) } - if err := checkValidGroup(x); err != nil { + if err := checkValidGroup(f, x); err != nil { return errors.New("extension field %q is an invalid group: %v", x.FullName(), err) } if md := x.Message(); md != nil && md.IsMapEntry() { return errors.New("extension field %q cannot be a map entry", x.FullName()) } - if x.Syntax() == protoreflect.Proto3 { + if f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) { switch x.ContainingMessage().FullName() { case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName(): @@ -309,21 +314,25 @@ func isPackable(fd protoreflect.FieldDescriptor) bool { // checkValidGroup reports whether fd is a valid group according to the same // rules that protoc imposes. -func checkValidGroup(fd protoreflect.FieldDescriptor) error { +func checkValidGroup(f *filedesc.File, fd protoreflect.FieldDescriptor) error { md := fd.Message() switch { case fd.Kind() != protoreflect.GroupKind: return nil - case fd.Syntax() == protoreflect.Proto3: + case f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3): return errors.New("invalid under proto3 semantics") case md == nil || md.IsPlaceholder(): return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): - return errors.New("message and field must be declared in the same scope") - case !unicode.IsUpper(rune(md.Name()[0])): - return errors.New("message name must start with an uppercase") - case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): - return errors.New("field name must be lowercased form of the message name") + } + if f.L1.Edition < fromEditionProto(descriptorpb.Edition_EDITION_2023) { + switch { + case fd.FullName().Parent() != md.FullName().Parent(): + return errors.New("message and field must be declared in the same scope") + case !unicode.IsUpper(rune(md.Name()[0])): + return errors.New("message name must start with an uppercase") + case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): + return errors.New("field name must be lowercased form of the message name") + } } return nil } diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go index 2a6b29d17..f6a1fec6e 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go @@ -17,11 +17,6 @@ import ( gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" ) -const ( - SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 - SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -) - var defaults = &descriptorpb.FeatureSetDefaults{} var defaultsCacheMu sync.Mutex var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go index 9d6e05420..a5de8d400 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go @@ -73,6 +73,16 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { p.Syntax = proto.String(file.Syntax().String()) } + if file.Syntax() == protoreflect.Editions { + desc := file + if fileImportDesc, ok := file.(protoreflect.FileImport); ok { + desc = fileImportDesc.FileDescriptor + } + + if editionsInterface, ok := desc.(interface{ Edition() int32 }); ok { + p.Edition = descriptorpb.Edition(editionsInterface.Edition()).Enum() + } + } return p } @@ -153,6 +163,18 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() { p.Proto3Optional = proto.Bool(true) } + if field.Syntax() == protoreflect.Editions { + // Editions have no group keyword, this type is only set so that downstream users continue + // treating this as delimited encoding. + if p.GetType() == descriptorpb.FieldDescriptorProto_TYPE_GROUP { + p.Type = descriptorpb.FieldDescriptorProto_TYPE_MESSAGE.Enum() + } + // Editions have no required keyword, this label is only set so that downstream users continue + // treating it as required. + if p.GetLabel() == descriptorpb.FieldDescriptorProto_LABEL_REQUIRED { + p.Label = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum() + } + } if field.HasDefault() { def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor) if err != nil && field.DefaultEnumValue() != nil { diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go index 00b01fbd8..c85bfaa5b 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go @@ -161,7 +161,7 @@ const ( // IsValid reports whether the syntax is valid. func (s Syntax) IsValid() bool { switch s { - case Proto2, Proto3: + case Proto2, Proto3, Editions: return true default: return false diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go index 60ff62b4c..5b80afe52 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go @@ -544,6 +544,12 @@ type EnumDescriptor interface { // ReservedRanges is a list of reserved ranges of enum numbers. ReservedRanges() EnumRanges + // IsClosed reports whether this enum uses closed semantics. + // See https://protobuf.dev/programming-guides/enum/#definitions. + // Note: the Go protobuf implementation is not spec compliant and treats + // all enums as open enums. + IsClosed() bool + isEnumDescriptor } type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go index 25de5ae00..9f046f979 100644 --- a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go +++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go @@ -6,9 +6,9 @@ // https://developers.google.com/open-source/licenses/bsd // Code generated by protoc-gen-go. DO NOT EDIT. -// source: reflect/protodesc/proto/go_features.proto +// source: google/protobuf/go_features.proto -package proto +package gofeaturespb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -30,7 +30,7 @@ type GoFeatures struct { func (x *GoFeatures) Reset() { *x = GoFeatures{} if protoimpl.UnsafeEnabled { - mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] + mi := &file_google_protobuf_go_features_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43,7 +43,7 @@ func (x *GoFeatures) String() string { func (*GoFeatures) ProtoMessage() {} func (x *GoFeatures) ProtoReflect() protoreflect.Message { - mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] + mi := &file_google_protobuf_go_features_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56,7 +56,7 @@ func (x *GoFeatures) ProtoReflect() protoreflect.Message { // Deprecated: Use GoFeatures.ProtoReflect.Descriptor instead. func (*GoFeatures) Descriptor() ([]byte, []int) { - return file_reflect_protodesc_proto_go_features_proto_rawDescGZIP(), []int{0} + return file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0} } func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { @@ -66,69 +66,67 @@ func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { return false } -var file_reflect_protodesc_proto_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ +var file_google_protobuf_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptorpb.FeatureSet)(nil), ExtensionType: (*GoFeatures)(nil), Field: 1002, - Name: "google.protobuf.go", + Name: "pb.go", Tag: "bytes,1002,opt,name=go", - Filename: "reflect/protodesc/proto/go_features.proto", + Filename: "google/protobuf/go_features.proto", }, } // Extension fields to descriptorpb.FeatureSet. var ( - // optional google.protobuf.GoFeatures go = 1002; - E_Go = &file_reflect_protodesc_proto_go_features_proto_extTypes[0] + // optional pb.GoFeatures go = 1002; + E_Go = &file_google_protobuf_go_features_proto_extTypes[0] ) -var File_reflect_protodesc_proto_go_features_proto protoreflect.FileDescriptor - -var file_reflect_protodesc_proto_go_features_proto_rawDesc = []byte{ - 0x0a, 0x29, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x64, - 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, - 0x0a, 0x0a, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, - 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, - 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x42, 0x1f, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, - 0x65, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, - 0x07, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, - 0x61, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x02, 0x67, 0x6f, - 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x64, 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, +var File_google_protobuf_go_features_proto protoreflect.FileDescriptor + +var file_google_protobuf_go_features_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, 0x0a, 0x0a, 0x47, 0x6f, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, 0x6c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, + 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x1f, 0x88, 0x01, 0x01, + 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, 0x65, 0x18, 0xe6, 0x07, 0xa2, + 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, 0x07, 0x52, 0x17, 0x6c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x4a, 0x73, 0x6f, + 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x3c, 0x0a, 0x02, 0x67, 0x6f, 0x12, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, + 0x02, 0x67, 0x6f, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x67, 0x6f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x70, 0x62, } var ( - file_reflect_protodesc_proto_go_features_proto_rawDescOnce sync.Once - file_reflect_protodesc_proto_go_features_proto_rawDescData = file_reflect_protodesc_proto_go_features_proto_rawDesc + file_google_protobuf_go_features_proto_rawDescOnce sync.Once + file_google_protobuf_go_features_proto_rawDescData = file_google_protobuf_go_features_proto_rawDesc ) -func file_reflect_protodesc_proto_go_features_proto_rawDescGZIP() []byte { - file_reflect_protodesc_proto_go_features_proto_rawDescOnce.Do(func() { - file_reflect_protodesc_proto_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflect_protodesc_proto_go_features_proto_rawDescData) +func file_google_protobuf_go_features_proto_rawDescGZIP() []byte { + file_google_protobuf_go_features_proto_rawDescOnce.Do(func() { + file_google_protobuf_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_go_features_proto_rawDescData) }) - return file_reflect_protodesc_proto_go_features_proto_rawDescData + return file_google_protobuf_go_features_proto_rawDescData } -var file_reflect_protodesc_proto_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_reflect_protodesc_proto_go_features_proto_goTypes = []interface{}{ - (*GoFeatures)(nil), // 0: google.protobuf.GoFeatures +var file_google_protobuf_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_protobuf_go_features_proto_goTypes = []interface{}{ + (*GoFeatures)(nil), // 0: pb.GoFeatures (*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet } -var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ - 1, // 0: google.protobuf.go:extendee -> google.protobuf.FeatureSet - 0, // 1: google.protobuf.go:type_name -> google.protobuf.GoFeatures +var file_google_protobuf_go_features_proto_depIdxs = []int32{ + 1, // 0: pb.go:extendee -> google.protobuf.FeatureSet + 0, // 1: pb.go:type_name -> pb.GoFeatures 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 1, // [1:2] is the sub-list for extension type_name @@ -136,13 +134,13 @@ var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for field type_name } -func init() { file_reflect_protodesc_proto_go_features_proto_init() } -func file_reflect_protodesc_proto_go_features_proto_init() { - if File_reflect_protodesc_proto_go_features_proto != nil { +func init() { file_google_protobuf_go_features_proto_init() } +func file_google_protobuf_go_features_proto_init() { + if File_google_protobuf_go_features_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_reflect_protodesc_proto_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_google_protobuf_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoFeatures); i { case 0: return &v.state @@ -159,19 +157,19 @@ func file_reflect_protodesc_proto_go_features_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_reflect_protodesc_proto_go_features_proto_rawDesc, + RawDescriptor: file_google_protobuf_go_features_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 1, NumServices: 0, }, - GoTypes: file_reflect_protodesc_proto_go_features_proto_goTypes, - DependencyIndexes: file_reflect_protodesc_proto_go_features_proto_depIdxs, - MessageInfos: file_reflect_protodesc_proto_go_features_proto_msgTypes, - ExtensionInfos: file_reflect_protodesc_proto_go_features_proto_extTypes, + GoTypes: file_google_protobuf_go_features_proto_goTypes, + DependencyIndexes: file_google_protobuf_go_features_proto_depIdxs, + MessageInfos: file_google_protobuf_go_features_proto_msgTypes, + ExtensionInfos: file_google_protobuf_go_features_proto_extTypes, }.Build() - File_reflect_protodesc_proto_go_features_proto = out.File - file_reflect_protodesc_proto_go_features_proto_rawDesc = nil - file_reflect_protodesc_proto_go_features_proto_goTypes = nil - file_reflect_protodesc_proto_go_features_proto_depIdxs = nil + File_google_protobuf_go_features_proto = out.File + file_google_protobuf_go_features_proto_rawDesc = nil + file_google_protobuf_go_features_proto_goTypes = nil + file_google_protobuf_go_features_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto deleted file mode 100644 index d24657129..000000000 --- a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto +++ /dev/null @@ -1,28 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2023 Google Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file or at -// https://developers.google.com/open-source/licenses/bsd - -syntax = "proto2"; - -package google.protobuf; - -import "google/protobuf/descriptor.proto"; - -option go_package = "google.golang.org/protobuf/types/gofeaturespb"; - -extend google.protobuf.FeatureSet { - optional GoFeatures go = 1002; -} - -message GoFeatures { - // Whether or not to generate the deprecated UnmarshalJSON method for enums. - optional bool legacy_unmarshal_json_enum = 1 [ - retention = RETENTION_RUNTIME, - targets = TARGET_TYPE_ENUM, - edition_defaults = { edition: EDITION_PROTO2, value: "true" }, - edition_defaults = { edition: EDITION_PROTO3, value: "false" } - ]; -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 5fcb2e59a..a87a20ab4 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -65,7 +65,7 @@ github.com/gardener/cert-management/pkg/apis/cert/v1alpha1 # github.com/gardener/etcd-druid v0.22.0 ## explicit; go 1.21 github.com/gardener/etcd-druid/api/v1alpha1 -# github.com/gardener/gardener v1.94.1 +# github.com/gardener/gardener v1.95.2 ## explicit; go 1.22.0 github.com/gardener/gardener/.github github.com/gardener/gardener/.github/ISSUE_TEMPLATE @@ -97,6 +97,9 @@ github.com/gardener/gardener/pkg/apis/operator github.com/gardener/gardener/pkg/apis/operator/v1alpha1 github.com/gardener/gardener/pkg/apis/resources github.com/gardener/gardener/pkg/apis/resources/v1alpha1 +github.com/gardener/gardener/pkg/apis/security +github.com/gardener/gardener/pkg/apis/security/install +github.com/gardener/gardener/pkg/apis/security/v1alpha1 github.com/gardener/gardener/pkg/apis/seedmanagement github.com/gardener/gardener/pkg/apis/seedmanagement/encoding github.com/gardener/gardener/pkg/apis/seedmanagement/install @@ -425,7 +428,7 @@ go.uber.org/zap/internal/exit go.uber.org/zap/internal/pool go.uber.org/zap/internal/stacktrace go.uber.org/zap/zapcore -# golang.org/x/crypto v0.22.0 +# golang.org/x/crypto v0.23.0 ## explicit; go 1.18 golang.org/x/crypto/bcrypt golang.org/x/crypto/blowfish @@ -447,7 +450,7 @@ golang.org/x/mod/internal/lazyregexp golang.org/x/mod/modfile golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.24.0 +# golang.org/x/net v0.25.0 ## explicit; go 1.18 golang.org/x/net/context golang.org/x/net/html @@ -466,16 +469,16 @@ golang.org/x/oauth2/internal # golang.org/x/sync v0.7.0 ## explicit; go 1.18 golang.org/x/sync/errgroup -# golang.org/x/sys v0.19.0 +# golang.org/x/sys v0.20.0 ## explicit; go 1.18 golang.org/x/sys/cpu golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/term v0.19.0 +# golang.org/x/term v0.20.0 ## explicit; go 1.18 golang.org/x/term -# golang.org/x/text v0.14.0 +# golang.org/x/text v0.15.0 ## explicit; go 1.18 golang.org/x/text/encoding golang.org/x/text/encoding/charmap @@ -500,7 +503,7 @@ golang.org/x/text/unicode/norm # golang.org/x/time v0.5.0 ## explicit; go 1.18 golang.org/x/time/rate -# golang.org/x/tools v0.20.0 +# golang.org/x/tools v0.21.0 ## explicit; go 1.19 golang.org/x/tools/cmd/goimports golang.org/x/tools/cover @@ -516,7 +519,6 @@ golang.org/x/tools/internal/event golang.org/x/tools/internal/event/core golang.org/x/tools/internal/event/keys golang.org/x/tools/internal/event/label -golang.org/x/tools/internal/event/tag golang.org/x/tools/internal/gcimporter golang.org/x/tools/internal/gocommand golang.org/x/tools/internal/gopathwalk @@ -537,7 +539,7 @@ google.golang.org/genproto/internal ## explicit; go 1.19 google.golang.org/genproto/googleapis/api google.golang.org/genproto/googleapis/api/annotations -# google.golang.org/protobuf v1.33.0 +# google.golang.org/protobuf v1.34.0 ## explicit; go 1.17 google.golang.org/protobuf/encoding/protojson google.golang.org/protobuf/encoding/prototext @@ -546,6 +548,7 @@ google.golang.org/protobuf/internal/descfmt google.golang.org/protobuf/internal/descopts google.golang.org/protobuf/internal/detrand google.golang.org/protobuf/internal/editiondefaults +google.golang.org/protobuf/internal/editionssupport google.golang.org/protobuf/internal/encoding/defval google.golang.org/protobuf/internal/encoding/json google.golang.org/protobuf/internal/encoding/messageset @@ -977,7 +980,7 @@ k8s.io/kubelet/pkg/apis ## explicit; go 1.21 k8s.io/metrics/pkg/apis/metrics k8s.io/metrics/pkg/apis/metrics/v1beta1 -# k8s.io/utils v0.0.0-20240423183400-0849a56e8f22 +# k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 ## explicit; go 1.18 k8s.io/utils/buffer k8s.io/utils/clock @@ -989,7 +992,7 @@ k8s.io/utils/pointer k8s.io/utils/ptr k8s.io/utils/strings/slices k8s.io/utils/trace -# sigs.k8s.io/controller-runtime v0.17.3 +# sigs.k8s.io/controller-runtime v0.17.5 ## explicit; go 1.21 sigs.k8s.io/controller-runtime/pkg/cache sigs.k8s.io/controller-runtime/pkg/cache/internal diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go index e7f2945f1..73ad68fe4 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go @@ -419,19 +419,6 @@ func defaultOpts(config *rest.Config, opts Options) (Options, error) { } } - for namespace, cfg := range opts.DefaultNamespaces { - cfg = defaultConfig(cfg, optionDefaultsToConfig(&opts)) - if namespace == metav1.NamespaceAll { - cfg.FieldSelector = fields.AndSelectors( - appendIfNotNil( - namespaceAllSelector(maps.Keys(opts.DefaultNamespaces)), - cfg.FieldSelector, - )..., - ) - } - opts.DefaultNamespaces[namespace] = cfg - } - for obj, byObject := range opts.ByObject { isNamespaced, err := apiutil.IsObjectNamespaced(obj, opts.Scheme, opts.Mapper) if err != nil { @@ -485,6 +472,22 @@ func defaultOpts(config *rest.Config, opts Options) (Options, error) { opts.ByObject[obj] = byObject } + // Default namespaces after byObject has been defaulted, otherwise a namespace without selectors + // will get the `Default` selectors, then get copied to byObject and then not get defaulted from + // byObject, as it already has selectors. + for namespace, cfg := range opts.DefaultNamespaces { + cfg = defaultConfig(cfg, optionDefaultsToConfig(&opts)) + if namespace == metav1.NamespaceAll { + cfg.FieldSelector = fields.AndSelectors( + appendIfNotNil( + namespaceAllSelector(maps.Keys(opts.DefaultNamespaces)), + cfg.FieldSelector, + )..., + ) + } + opts.DefaultNamespaces[namespace] = cfg + } + // Default the resync period to 10 hours if unset if opts.SyncPeriod == nil { opts.SyncPeriod = &defaultSyncPeriod diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fieldowner.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fieldowner.go new file mode 100644 index 000000000..2f2f892ef --- /dev/null +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fieldowner.go @@ -0,0 +1,106 @@ +/* +Copyright 2024 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package client + +import ( + "context" + + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// WithFieldOwner wraps a Client and adds the fieldOwner as the field +// manager to all write requests from this client. If additional [FieldOwner] +// options are specified on methods of this client, the value specified here +// will be overridden. +func WithFieldOwner(c Client, fieldOwner string) Client { + return &clientWithFieldManager{ + manager: fieldOwner, + c: c, + Reader: c, + } +} + +type clientWithFieldManager struct { + manager string + c Client + Reader +} + +func (f *clientWithFieldManager) Create(ctx context.Context, obj Object, opts ...CreateOption) error { + return f.c.Create(ctx, obj, append([]CreateOption{FieldOwner(f.manager)}, opts...)...) +} + +func (f *clientWithFieldManager) Update(ctx context.Context, obj Object, opts ...UpdateOption) error { + return f.c.Update(ctx, obj, append([]UpdateOption{FieldOwner(f.manager)}, opts...)...) +} + +func (f *clientWithFieldManager) Patch(ctx context.Context, obj Object, patch Patch, opts ...PatchOption) error { + return f.c.Patch(ctx, obj, patch, append([]PatchOption{FieldOwner(f.manager)}, opts...)...) +} + +func (f *clientWithFieldManager) Delete(ctx context.Context, obj Object, opts ...DeleteOption) error { + return f.c.Delete(ctx, obj, opts...) +} + +func (f *clientWithFieldManager) DeleteAllOf(ctx context.Context, obj Object, opts ...DeleteAllOfOption) error { + return f.c.DeleteAllOf(ctx, obj, opts...) +} + +func (f *clientWithFieldManager) Scheme() *runtime.Scheme { return f.c.Scheme() } +func (f *clientWithFieldManager) RESTMapper() meta.RESTMapper { return f.c.RESTMapper() } +func (f *clientWithFieldManager) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error) { + return f.c.GroupVersionKindFor(obj) +} +func (f *clientWithFieldManager) IsObjectNamespaced(obj runtime.Object) (bool, error) { + return f.c.IsObjectNamespaced(obj) +} + +func (f *clientWithFieldManager) Status() StatusWriter { + return &subresourceClientWithFieldOwner{ + owner: f.manager, + subresourceWriter: f.c.Status(), + } +} + +func (f *clientWithFieldManager) SubResource(subresource string) SubResourceClient { + c := f.c.SubResource(subresource) + return &subresourceClientWithFieldOwner{ + owner: f.manager, + subresourceWriter: c, + SubResourceReader: c, + } +} + +type subresourceClientWithFieldOwner struct { + owner string + subresourceWriter SubResourceWriter + SubResourceReader +} + +func (f *subresourceClientWithFieldOwner) Create(ctx context.Context, obj Object, subresource Object, opts ...SubResourceCreateOption) error { + return f.subresourceWriter.Create(ctx, obj, subresource, append([]SubResourceCreateOption{FieldOwner(f.owner)}, opts...)...) +} + +func (f *subresourceClientWithFieldOwner) Update(ctx context.Context, obj Object, opts ...SubResourceUpdateOption) error { + return f.subresourceWriter.Update(ctx, obj, append([]SubResourceUpdateOption{FieldOwner(f.owner)}, opts...)...) +} + +func (f *subresourceClientWithFieldOwner) Patch(ctx context.Context, obj Object, patch Patch, opts ...SubResourcePatchOption) error { + return f.subresourceWriter.Patch(ctx, obj, patch, append([]SubResourcePatchOption{FieldOwner(f.owner)}, opts...)...) +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go index fdb9d982d..2b03263de 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go @@ -179,6 +179,24 @@ func (cm *controllerManager) add(r Runnable) error { return cm.runnables.Add(r) } +// AddMetricsServerExtraHandler adds extra handler served on path to the http server that serves metrics. +func (cm *controllerManager) AddMetricsServerExtraHandler(path string, handler http.Handler) error { + cm.Lock() + defer cm.Unlock() + if cm.started { + return fmt.Errorf("unable to add new metrics handler because metrics endpoint has already been created") + } + if cm.metricsServer == nil { + cm.GetLogger().Info("warn: metrics server is currently disabled, registering extra handler %q will be ignored", path) + return nil + } + if err := cm.metricsServer.AddExtraHandler(path, handler); err != nil { + return err + } + cm.logger.V(2).Info("Registering metrics http server extra handler", "path", path) + return nil +} + // AddHealthzCheck allows you to add Healthz checker. func (cm *controllerManager) AddHealthzCheck(name string, check healthz.Checker) error { cm.Lock() diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go index 25c3c7375..0b7a86500 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go @@ -67,6 +67,15 @@ type Manager interface { // election was configured. Elected() <-chan struct{} + // AddMetricsServerExtraHandler adds an extra handler served on path to the http server that serves metrics. + // Might be useful to register some diagnostic endpoints e.g. pprof. + // + // Note that these endpoints are meant to be sensitive and shouldn't be exposed publicly. + // + // If the simple path -> handler mapping offered here is not enough, + // a new http server/listener should be added as Runnable to the manager via Add method. + AddMetricsServerExtraHandler(path string, handler http.Handler) error + // AddHealthzCheck allows you to add Healthz checker AddHealthzCheck(name string, check healthz.Checker) error diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/server/server.go b/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/server/server.go index e10c5c210..40eb9db8c 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/server/server.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/server/server.go @@ -46,6 +46,9 @@ var DefaultBindAddress = ":8080" // Server is a server that serves metrics. type Server interface { + // AddExtraHandler adds extra handler served on path to the http server that serves metrics. + AddExtraHandler(path string, handler http.Handler) error + // NeedLeaderElection implements the LeaderElectionRunnable interface, which indicates // the metrics server doesn't need leader election. NeedLeaderElection() bool @@ -179,6 +182,23 @@ func (*defaultServer) NeedLeaderElection() bool { return false } +// AddExtraHandler adds extra handler served on path to the http server that serves metrics. +func (s *defaultServer) AddExtraHandler(path string, handler http.Handler) error { + s.mu.Lock() + defer s.mu.Unlock() + if s.options.ExtraHandlers == nil { + s.options.ExtraHandlers = make(map[string]http.Handler) + } + if path == defaultMetricsEndpoint { + return fmt.Errorf("overriding builtin %s endpoint is not allowed", defaultMetricsEndpoint) + } + if _, found := s.options.ExtraHandlers[path]; found { + return fmt.Errorf("can't register extra handler by duplicate path %q on metrics http server", path) + } + s.options.ExtraHandlers[path] = handler + return nil +} + // Start runs the server. // It will install the metrics related resources depend on the server configuration. func (s *defaultServer) Start(ctx context.Context) error {