diff --git a/.bazelignore b/.bazelignore new file mode 100644 index 00000000..08ce76bb --- /dev/null +++ b/.bazelignore @@ -0,0 +1,7 @@ +# Required for now to prevent `bazel build //...` from recursing into the +# modules under `runfiles/` pending resolution of: +# +# - https://github.com/bazelbuild/bazel/issues/22208 +# - https://github.com/bazelbuild/bazel/issues/21515 +runfiles/ +bzlmod/ diff --git a/.bazelrc b/.bazelrc index d296b021..34db17a1 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,31 +1,91 @@ -build:engflow --remote_executor=grpcs://10.0.0.10:8080 -build:engflow --tls_certificate=engflow-ca.crt -build:engflow --jobs=8 - -build:engflow --define=EXECUTOR=remote -build:engflow --disk_cache= -build:engflow --experimental_inmemory_dotd_files -build:engflow --experimental_inmemory_jdeps_files -build:engflow --incompatible_strict_action_env=true -build:engflow --remote_timeout=3600 -build:engflow --spawn_strategy=remote,local - -build:engflow --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 -build:engflow --crosstool_top=@engflow_remote_config//cc:toolchain -build:engflow --extra_execution_platforms=@engflow_remote_config//config:platform -build:engflow --extra_toolchains=@engflow_remote_config//config:cc-toolchain -build:engflow --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_java11 -build:engflow --host_javabase=@engflow_remote_config//java:jdk -build:engflow --host_platform=@engflow_remote_config//config:platform -build:engflow --java_toolchain=@bazel_tools//tools/jdk:toolchain_java11 -build:engflow --javabase=@engflow_remote_config//java:jdk -build:engflow --platforms=@engflow_remote_config//config:platform - -build:without_bytes --experimental_inmemory_jdeps_files -build:without_bytes --experimental_inmemory_dotd_files -build:without_bytes --experimental_remote_download_outputs=minimal - -build:bes --tls_certificate=engflow-ca.crt -build:bes --bes_backend=grpcs://demo.engflow.com:8080 -build:bes --bes_lifecycle_events -build:bes --bes_results_url=https://demo.engflow.com:8080/invocation/ +# Options common for all EngFlow remote configurations. +common --@aspect_rules_ts//ts:skipLibCheck=honor_tsconfig +common --@aspect_rules_ts//ts:default_to_tsc_transpiler + +build --java_runtime_version=remotejdk_11 +build --java_language_version=11 + +build:engflow_common --jobs=40 +build:engflow_common --disk_cache= +build:engflow_common --incompatible_strict_action_env=true +build:engflow_common --remote_timeout=3600 +build:engflow_common --grpc_keepalive_time=30s +build:engflow_common --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 + +# Options for continuous testing. +build:ci --color=yes +build:ci --curses=yes +build:ci --show_timestamps +build:ci --announce_rc +build:ci --test_output=summary +build:ci --show_progress_rate_limit=2.0 +build:ci --nobuild_runfile_links +build:ci --keep_going + +# Additional clang toolchain options for automatically configured toolchains. +build --cxxopt="-std=c++17" +build --host_cxxopt="-std=c++17" +build:clang --cxxopt="-fno-exceptions" +build:clang --host_cxxopt="-fno-exceptions" +build:clang --cxxopt="-fvisibility=hidden" +build:clang --host_cxxopt="-fvisibility=hidden" + +# iOS setup +build:ios --ios_multi_cpus=sim_arm64 +build:ios --@rules_apple//apple/build_settings:ios_simulator_device="iPhone 16 Pro" + +# Platform-specific options for each supported platform. +build:remote_linux_x64 --extra_execution_platforms=//platform/linux_x64 +build:remote_linux_x64 --host_platform=//platform/linux_x64 +build:remote_linux_x64 --platforms=//platform/linux_x64 +build:remote_linux_x64 --extra_toolchains=//platform/linux_x64:cc-toolchain + +build:remote_macos_arm64 --config=clang +build:remote_macos_arm64 --host_platform=//platform/macos_arm64 +build:remote_macos_arm64 --platforms=//platform/macos_arm64 +build:remote_macos_arm64 --macos_minimum_os=14 +build:remote_macos_arm64 --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 +build:remote_macos_arm64 --host_action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 +build:remote_macos_arm64 --xcode_version_config=//platform/macos_arm64:installed_xcodes +# Disable workers: Builds fail with remote swift workers +build:remote_macos_arm64 --experimental_remote_mark_tool_inputs=false + +build:remote_windows_x64 --host_platform=//platform/windows_x64 +build:remote_windows_x64 --platforms=//platform/windows_x64 +build:remote_windows_x64 --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 +build:remote_windows_x64 --extra_execution_platforms=//platform/windows_x64 +build:remote_windows_x64 --extra_toolchains=//platform/windows_x64:cc-toolchain + +# Options for private EngFlow clusters. +# To use on your own cluster, change the URLs to your own endpoint. +build:opal --config=engflow_common +build:opal --config=opal_bes +build:opal --config=opal_auth +build:opal --remote_instance_name=example-oss +build:opal --remote_executor=grpcs://opal.cluster.engflow.com + +build:opal_bes --bes_backend=grpcs://opal.cluster.engflow.com +build:opal_bes --bes_instance_name=example-oss +build:opal_bes --bes_lifecycle_events +build:opal_bes --bes_results_url=https://opal.cluster.engflow.com/invocations/example-oss/ + +build:pyrite --config=engflow_common +build:pyrite --config=pyrite_bes +build:pyrite --config=pyrite_auth +build:pyrite --remote_executor=grpcs://pyrite.cluster.engflow.com + +build:pyrite_bes --bes_backend=grpcs://pyrite.cluster.engflow.com +build:pyrite_bes --bes_lifecycle_events +build:pyrite_bes --bes_results_url=https://pyrite.cluster.engflow.com/invocation/ + +# To authenticate with the clusters above, create a .bazelrc.user file. +# This file is not checked into Git because it refers to local file system paths. +# +# It could contain (for example for mTLS authentication): +# +# build:opal_auth --tls_client_certificate=/home/example/.engflow/opal/engflow.crt +# build:opal_auth --tls_client_key=/home/example/.engflow/opal/engflow.key +# +# You can obtain an mTLS certificate by visiting the cluster's "Getting Started" +# page, after logging in. +try-import .bazelrc.user diff --git a/.bazelversion b/.bazelversion new file mode 100644 index 00000000..deeb3d66 --- /dev/null +++ b/.bazelversion @@ -0,0 +1 @@ +9.2.0 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d3641fea..67b11e7b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,19 +2,199 @@ name: CI on: push: - branches: [ master ] - tags: 'v*' + branches: + - "main" pull_request: - branches: [ master ] + schedule: + - cron: '0 12 * * *' # daily at 12:00 UTC + +# Cancel pending jobs on push. +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-concurrency-to-cancel-any-in-progress-job-or-run +concurrency: + group: ${{ github.workflow }}.${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} # Recommended here: https://github.com/bazelbuild/bazelisk/issues/88#issuecomment-625178467 env: BAZELISK_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + OPAL_RPC_CREDENTIALS: ${{ secrets.OPAL_RPC_CREDENTIALS }} jobs: - test: - runs-on: [ubuntu-20.04] + macos-test-matrix: + runs-on: + - self-hosted + - "os=macos" + - "arch=arm64" + - "os_distribution=tahoe" + - "os_version=26" + - "revision=05f66c20d1c4f89119e612355c71ba44ae5d19a9" + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + test_package: + - cpp + - csharp + - docker + - genrules + - go + - ios + - java + - kotlin + - perl + - scala + - swift + - typescript + execution_type: [remote, local] + include: + - arch: arm64 + - os: macos + steps: - - uses: actions/checkout@v2 + - uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" + + - name: Set up authentication + shell: bash + run: cp infra/bazelrc .bazelrc.user + + - name: Generate python requirements lock + shell: bash + run: bazel run //python:requirements.update + + - name: Build and test + env: + ARCH: ${{ matrix.arch }} + OS: ${{ matrix.os }} + EXECUTION_TYPE: ${{ matrix.execution_type }} + APPLE_SDK_VERSION_OVERRIDE: 26.5 + run: python3 infra/test-all.py --package=${{ matrix.test_package }} + + linux-test-matrix: + runs-on: + - self-hosted + - "os=linux" + - "arch=x64" + - "engflow-bento-name=example-gh-x64" + - "engflow-cluster=glass" + - "engflow-job-name=linux-test-matrix-${{matrix.execution_type}}" + - "engflow-job-type=${{github.event_name}}-${{github.ref_name}}" + - "engflow-run-id=${{ github.run_id }}" + - "engflow-bento-allow-save=false" + + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + test_package: + - cpp + - csharp + - docker + - genrules + - go + - ios + - java + - kotlin + - perl + - scala + - swift + - typescript + execution_type: [remote, local] + include: + - arch: x64 + - os: linux + + # Override remote ios tests to use macos/arm64 in the remote executor. + - test_package: ios + execution_type: remote + arch: arm64 + os: macos + exclude: + # Local ios tests are not supported on linux + - test_package: ios + execution_type: local + + steps: + - uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" + + - name: Set up authentication + shell: bash + run: cp infra/bazelrc .bazelrc.user + + - name: Generate python requirements lock + shell: bash + run: bazel run //python:requirements.update + + - name: Build and test + env: + ARCH: ${{ matrix.arch }} + OS: ${{ matrix.os }} + EXECUTION_TYPE: ${{ matrix.execution_type }} + run: python3 infra/test-all.py --package=${{ matrix.test_package }} + + bento-snapshot: + runs-on: + - self-hosted + - "os=linux" + - "arch=x64" + - "remote_execution=true" + - "engflow-bento-name=example-gh-x64" + - "engflow-cluster=glass" + - "engflow-job-name=bento-snapshot" + - "engflow-job-type=${{github.event_name}}-${{github.ref_name}}" + - "engflow-run-id=${{ github.run_id }}" + # To avoid a race condition, among all the jobs that use the same Bento in the same repo, only + # one should specify "engflow-bento-allow-save=true". + - "engflow-bento-allow-save=true" + + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + test_package: [cpp] + execution_type: [remote] + + steps: + - uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" + + - name: Set up authentication + shell: bash + run: cp infra/bazelrc .bazelrc.user + + - name: Generate python requirements lock + shell: bash + run: bazel run //python:requirements.update + + - name: Build and test + env: + ARCH: x64 + OS: linux + EXECUTION_TYPE: ${{ matrix.execution_type }} + run: python3 infra/test-all.py --package=${{ matrix.test_package }} + + buck2-test: + runs-on: + - self-hosted + - "os=linux" + - "arch=x64" + - "engflow-bento-name=example-gh-buck2-x64" + - "engflow-cluster=glass" + - "engflow-job-name=ci-runners-test-matrix" + - "engflow-job-type=${{github.event_name}}-${{github.ref_name}}" + - "engflow-run-id=${{ github.run_id }}" + timeout-minutes: 10 + + steps: + - uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" + + - name: Set up Buck2 binary + shell: bash + run: infra/setup-buck2.sh + + - name: Set up authentication + shell: bash + run: infra/auth-buck2.sh + - name: Build and test + shell: bash + run: infra/test-buck2.sh diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml new file mode 100644 index 00000000..e9858e82 --- /dev/null +++ b/.github/workflows/renovate.yml @@ -0,0 +1,17 @@ +name: Renovate Dependency Update +on: + workflow_dispatch: + schedule: + - cron: "0 0 1 * *" # Run the 1st of each month + +jobs: + renovate: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" + - name: Renovate Update + uses: "renovatebot/github-action@57ea3203719eee5f6de53b57eb613562b34e72ae" # v34.146.1 + with: + configurationFile: renovate.json + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index a6ef824c..23d95cfa 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,18 @@ -/bazel-* +bazel-* +/.ijwb +/.clwb +/.idea +/.project +*.swp +/.bazelrc.user + +# macOS-specific excludes +.DS_Store + +node_modules + +# python cache +__pycache__ + +# ignore VSCode java extension generated files +third_party/**/target/** diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..bfd89480 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,34 @@ +{ + "go.goroot": "${workspaceFolder}/bazel-${workspaceFolderBasename}/external/go_sdk", + "go.toolsEnvVars": { + "GOPACKAGESDRIVER": "${workspaceFolder}/infra/gopackagesdriver.sh" + }, + "go.enableCodeLens": { + "runtest": false + }, + "gopls": { + "build.directoryFilters": [ + "-bazel-bin", + "-bazel-out", + "-bazel-testlogs", + "-bazel-mypkg", + ], + "formatting.gofumpt": true, + "formatting.local": "github.com/my/mypkg", + "ui.completion.usePlaceholders": true, + "ui.semanticTokens": true, + "ui.codelenses": { + "gc_details": false, + "regenerate_cgo": false, + "generate": false, + "test": false, + "tidy": false, + "upgrade_dependency": false, + "vendor": false + }, + }, + "go.useLanguageServer": true, + "go.buildOnSave": "off", + "go.lintOnSave": "off", + "go.vetOnSave": "off", +} \ No newline at end of file diff --git a/BUILD b/BUILD new file mode 100644 index 00000000..18ea9616 --- /dev/null +++ b/BUILD @@ -0,0 +1,5 @@ +load("@gazelle//:def.bzl", "gazelle") + +gazelle(name = "gazelle") + +# gazelle:exclude java diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 00000000..3c0f2205 --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,158 @@ +"""EngFlow example project""" + +module( + name = "engflow-example", + version = "0.0.0", +) + +http_file = use_repo_rule( + "@bazel_tools//tools/build_defs/repo:http.bzl", + "http_file", +) + +http_archive = use_repo_rule( + "@bazel_tools//tools/build_defs/repo:http.bzl", + "http_archive", +) + +# Some file dependencies +http_file( + name = "emacs", + sha256 = "1439bf7f24e5769f35601dbf332e74dfc07634da6b1e9500af67188a92340a28", + urls = [ + "https://storage.googleapis.com/engflow-tools-public/emacs-28.1.tar.gz", + "https://mirror.its.dal.ca/gnu/emacs/emacs-28.1.tar.gz", + "https://mirrors.kernel.org/gnu/emacs/emacs-28.1.tar.gz", + ], +) + +http_file( + name = "ubuntu_20.04_1.3GB", + sha256 = "5035be37a7e9abbdc09f0d257f3e33416c1a0fb322ba860d42d74aa75c3468d4", + urls = [ + "https://storage.googleapis.com/engflow-tools-public/ubuntu-20.04.5-live-server-amd64.iso", + "https://mirror.math.princeton.edu/pub/ubuntu-iso/focal/ubuntu-20.04.5-live-server-amd64.iso", + "https://mirror.pit.teraswitch.com/ubuntu-releases/focal/ubuntu-20.04.5-live-server-amd64.iso", + ], +) + +# Abseil Python can be imported through pip_import, but it has native Bazel support too. +# bzlmod: https://github.com/abseil/abseil-py/issues/263 +http_archive( + name = "io_abseil_py", + sha256 = "8a3d0830e4eb4f66c4fa907c06edf6ce1c719ced811a12e26d9d3162f8471758", + strip_prefix = "abseil-py-2.1.0", + url = "https://github.com/abseil/abseil-py/archive/refs/tags/v2.1.0.tar.gz", +) + +bazel_dep(name = "bazel_skylib", version = "1.9.0") +bazel_dep(name = "engflowapis-java", version = "2025.03.14-12.58.52") +bazel_dep(name = "platforms", version = "1.1.0") +bazel_dep(name = "protobuf", version = "35.0") +bazel_dep(name = "apple_support", version = "2.6.1") +bazel_dep(name = "rules_cc", version = "0.2.22") +bazel_dep(name = "rules_apple", version = "5.0.0-rc2") +bazel_dep( + name = "googleapis", + version = "0.0.0-20260525-ef19b7b7", +) +single_version_override( + module_name = "googleapis", + patch_strip = 1, + patches = ["//:googleapis-loads.patch"], +) + +bazel_dep(name = "rules_python", version = "2.2.0") + +PYTHON_VERSION = "3.14.4" + +python = use_extension("@rules_python//python/extensions:python.bzl", "python") +python.toolchain( + is_default = True, + python_version = PYTHON_VERSION, +) + +pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") +pip.parse( + hub_name = "pip", + python_version = PYTHON_VERSION, + requirements_lock = "//python:requirements_lock.txt", +) +use_repo(pip, "pip") + +bazel_dep(name = "rules_dotnet", version = "0.21.5") + +dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") +dotnet.toolchain(dotnet_version = "8.0.200") +use_repo(dotnet, "dotnet_toolchains") + +register_toolchains("@dotnet_toolchains//:all") + +bazel_dep(name = "rules_go", version = "0.62.0") +bazel_dep(name = "gazelle", version = "0.52.2") + +GO_VERSION = "1.26.5" + +go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") +go_sdk.download(version = GO_VERSION) + +go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps") +go_deps.from_file(go_mod = "//:go.mod") +use_repo(go_deps, "com_github_google_go_cmp") + +bazel_dep(name = "rules_java", version = "9.7.2") + +# https://github.com/bazelbuild/rules_jvm_external/blob/master/docs/bzlmod.md +bazel_dep(name = "rules_jvm_external", version = "7.0") +bazel_dep(name = "grpc-java", version = "1.78.0.bcr.1") +bazel_dep(name = "grpc", version = "1.81.0") + +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven.install( + artifacts = [ + "commons-cli:commons-cli:1.9.0", + "com.google.oauth-client:google-oauth-client:1.39.0", + "io.netty:netty-handler:4.1.121.Final", + ], + + # When updating versions, run `REPIN=1 bazel run @maven//:pin` + fail_if_repin_required = True, + lock_file = "//:maven_install.json", + repositories = [ + "https://repo.maven.apache.org/maven2/", + ], + strict_visibility = True, +) +use_repo(maven, "maven") + +bazel_dep(name = "rules_kotlin", version = "2.3.20") +bazel_dep(name = "rules_perl", version = "1.1.1") +bazel_dep(name = "rules_swift", version = "4.0.0-rc2") +bazel_dep(name = "rules_nodejs", version = "6.7.4") +bazel_dep(name = "aspect_rules_ts", version = "3.8.10") +bazel_dep(name = "aspect_bazel_lib", version = "2.22.5") + +rules_ts_ext = use_extension( + "@aspect_rules_ts//ts:extensions.bzl", + "ext", + dev_dependency = True, +) +rules_ts_ext.deps() +use_repo(rules_ts_ext, "npm_typescript") + +bazel_dep(name = "rules_scala", version = "7.2.5") + +scala_config = use_extension( + "@rules_scala//scala/extensions:config.bzl", + "scala_config", +) +scala_config.settings(scala_version = "2.13.18") + +scala_deps = use_extension( + "@rules_scala//scala/extensions:deps.bzl", + "scala_deps", +) +scala_deps.scala() +scala_deps.scalatest() + +bazel_dep(name = "rules_shell", version = "0.8.0") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock new file mode 100644 index 00000000..4a9cca75 --- /dev/null +++ b/MODULE.bazel.lock @@ -0,0 +1,3123 @@ +{ + "lockFileVersion": 26, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20220623.1/MODULE.bazel": "73ae41b6818d423a11fd79d95aedef1258f304448193d4db4ff90e5e7a0f076c", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.0/MODULE.bazel": "98dc378d64c12a4e4741ad3362f87fb737ee6a0886b2d90c3cdbb4d93ea3e0bf", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", + "https://bcr.bazel.build/modules/abseil-cpp/20240722.0.bcr.1/MODULE.bazel": "c0aa5eaefff1121b40208397f229604c717bd2fdf214ff67586d627118e17720", + "https://bcr.bazel.build/modules/abseil-cpp/20240722.0/MODULE.bazel": "88668a07647adbdc14cb3a7cd116fb23c9dda37a90a1681590b6c9d8339a5b84", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.0/MODULE.bazel": "d1086e248cda6576862b4b3fe9ad76a214e08c189af5b42557a6e1888812c5d5", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.0/MODULE.bazel": "c4d02dd22cd87458516655a45512060246ee2a4732f1fbe948a5bd9eb614e626", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c", + "https://bcr.bazel.build/modules/abseil-py/2.1.0/MODULE.bazel": "5ebe5bf853769c65707e5c28f216798f7a4b1042015e6a36e6d03094d94bec8a", + "https://bcr.bazel.build/modules/abseil-py/2.1.0/source.json": "0e8fc4f088ce07099c1cd6594c20c7ddbb48b4b3c0849b7d94ba94be88ff042b", + "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", + "https://bcr.bazel.build/modules/apple_support/1.13.0/MODULE.bazel": "7c8cdea7e031b7f9f67f0b497adf6d2c6a2675e9304ca93a9af6ed84eef5a524", + "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", + "https://bcr.bazel.build/modules/apple_support/1.17.1/MODULE.bazel": "655c922ab1209978a94ef6ca7d9d43e940cd97d9c172fb55f94d91ac53f8610b", + "https://bcr.bazel.build/modules/apple_support/1.19.0/MODULE.bazel": "195d987152354e9e4cab8f5635b55d39632b1542a8854b2012727d3a7bb02df4", + "https://bcr.bazel.build/modules/apple_support/1.21.0/MODULE.bazel": "ac1824ed5edf17dee2fdd4927ada30c9f8c3b520be1b5fd02a5da15bc10bff3e", + "https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1", + "https://bcr.bazel.build/modules/apple_support/1.24.1/MODULE.bazel": "f46e8ddad60aef170ee92b2f3d00ef66c147ceafea68b6877cb45bd91737f5f8", + "https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4", + "https://bcr.bazel.build/modules/apple_support/2.3.0/MODULE.bazel": "d48f824ae8eeea5f837eb3038cef3615075d996d3e82eb9187192c2820605a81", + "https://bcr.bazel.build/modules/apple_support/2.5.4/MODULE.bazel": "964e9268b37edb64e9a0fa525e5b5e535ba56bf63cadc68375f92e69fcb734f6", + "https://bcr.bazel.build/modules/apple_support/2.6.1/MODULE.bazel": "b268db2f0642f6f2cb56fb08e3926ab6541b9996d9dd655b8c838b694e3ceeee", + "https://bcr.bazel.build/modules/apple_support/2.6.1/source.json": "50ab4c595cc21ff7c2fc3f1867ee098198b7cf11785b18ad96f1f519dc85ed69", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.31.2/MODULE.bazel": "7bee702b4862612f29333590f4b658a5832d433d6f8e4395f090e8f4e85d442f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.38.0/MODULE.bazel": "6307fec451ba9962c1c969eb516ebfe1e46528f7fa92e1c9ac8646bef4cdaa3f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.40.3/MODULE.bazel": "668e6bcb4d957fc0e284316dba546b705c8d43c857f87119619ee83c4555b859", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.2/MODULE.bazel": "30dfabbfae0139b1f0036e01c201dd4c0167da3017f0b7ef3820d78e07622989", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/MODULE.bazel": "004ba890363d05372a97248c37205ae64b6fa31047629cd2c0895a9d0c7779e8", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/source.json": "ac2c3213df8f985785f1d0aeb7f0f73d5324e6e67d593d9b9470fb74a25d4a9b", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", + "https://bcr.bazel.build/modules/aspect_rules_js/1.33.1/MODULE.bazel": "db3e7f16e471cf6827059d03af7c21859e7a0d2bc65429a3a11f005d46fc501b", + "https://bcr.bazel.build/modules/aspect_rules_js/1.39.0/MODULE.bazel": "aece421d479e3c31dc3e5f6d49a12acc2700457c03c556650ec7a0ff23fc0d95", + "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", + "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/source.json": "a6b09288ab135225982a58ac0b5e2c032c331d88f80553d86596000e894e86b3", + "https://bcr.bazel.build/modules/aspect_rules_lint/0.12.0/MODULE.bazel": "e767c5dbfeb254ec03275a7701b5cfde2c4d2873676804bc7cb27ddff3728fed", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.8.10/MODULE.bazel": "a17a49a21226fc90163a29b3d6eac56703697205530b8d5cc38b3c074dbac039", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.8.10/source.json": "745c8dba237b4088409800143241bbb138e7ef37a359bd81a250c2c423f380ce", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/0.1.0/MODULE.bazel": "47011d645b0f949f42ee67f2e8775188a9cf4a0a1528aa2fa4952f2fd00906fd", + "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.13.0/MODULE.bazel": "c14c33c7c3c730612bdbe14ebbb5e61936b6f11322ea95a6e91cd1ba962f94df", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", + "https://bcr.bazel.build/modules/bazel_features/1.25.0/MODULE.bazel": "e2e60a10a6da64bbf533f15ca652bf61a033e41c2ed734d79a9a08ba87f68c1a", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.32.0/MODULE.bazel": "095d67022a58cb20f7e20e1aefecfa65257a222c18a938e2914fd257b5f1ccdc", + "https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6", + "https://bcr.bazel.build/modules/bazel_features/1.36.0/MODULE.bazel": "596cb62090b039caf1cad1d52a8bc35cf188ca9a4e279a828005e7ee49a1bec3", + "https://bcr.bazel.build/modules/bazel_features/1.39.0/MODULE.bazel": "28739425c1fc283c91931619749c832b555e60bcd1010b40d8441ce0a5cf726d", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.42.1/MODULE.bazel": "275a59b5406ff18c01739860aa70ad7ccb3cfb474579411decca11c93b951080", + "https://bcr.bazel.build/modules/bazel_features/1.46.0/MODULE.bazel": "3371af60ed64c67aa05401c08005e6b0418433b2a18712994e17300f0a610b2a", + "https://bcr.bazel.build/modules/bazel_features/1.47.0/MODULE.bazel": "e34df3cb35b1684cfa69923a61ae3803595babd3942cd306a488d51400886b30", + "https://bcr.bazel.build/modules/bazel_features/1.47.0/source.json": "4ba0b5138327f2d73352a51547a4e49a0a828ef400e046b15334d8905bf6b7ff", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_jar_jar/0.1.7/MODULE.bazel": "d2736a1dbfd8f72befc532823b5112f2597a28064ce4aac280c65bee7d8830a0", + "https://bcr.bazel.build/modules/bazel_jar_jar/0.1.7/source.json": "f894f62528821f749b8d57fb8fb737b13f6cfacde422c88019d4c48077ad0d96", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.1.0/MODULE.bazel": "6809765c14e3c766a9b9286c7b0ec56ed87a73326e48fe01749f0c0fdcfe3287", + "https://bcr.bazel.build/modules/bazel_lib/3.1.0/source.json": "aaf7c2dc816219f4cb356c9d65f2555fb7f9543e537199f74a921f7877d23dfb", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/bazel_worker_api/0.0.1/MODULE.bazel": "02a13b77321773b2042e70ee5e4c5e099c8ddee4cf2da9cd420442c36938d4bd", + "https://bcr.bazel.build/modules/bazel_worker_api/0.0.10/MODULE.bazel": "a426df551b40c3997c351d05f00f0d1f86b618ddb646012f1e9c72efce8ed939", + "https://bcr.bazel.build/modules/bazel_worker_api/0.0.10/source.json": "7f220d3edfeba5d1f61535fd8400338df74f8bdeb241ebe660534c6926a5a645", + "https://bcr.bazel.build/modules/bazel_worker_api/0.0.4/MODULE.bazel": "460aa12d01231a80cce03c548287b433b321d205b0028ae596728c35e5ee442e", + "https://bcr.bazel.build/modules/bazel_worker_api/0.0.8/MODULE.bazel": "396c1ef53835aafe3d42ce6619080531ee770648303731f16cfaa33fa056bf0c", + "https://bcr.bazel.build/modules/bazel_worker_java/0.0.4/MODULE.bazel": "82494a01018bb7ef06d4a17ec4cd7a758721f10eb8b6c820a818e70d669500db", + "https://bcr.bazel.build/modules/bazel_worker_java/0.0.8/MODULE.bazel": "e76479eae70bd4e8f5f4c2dfc5d03ab971cfb18750246c7b3f3454c5c2ee6629", + "https://bcr.bazel.build/modules/bazel_worker_java/0.0.8/source.json": "9395c4679444bc47bf7e51a710366a4480aa371c6f6bed01868e2fabcf11acec", + "https://bcr.bazel.build/modules/boringssl/0.0.0-20211025-d4f1ab9/MODULE.bazel": "6ee6353f8b1a701fe2178e1d925034294971350b6d3ac37e67e5a7d463267834", + "https://bcr.bazel.build/modules/boringssl/0.0.0-20230215-5c22014/MODULE.bazel": "4b03dc0d04375fa0271174badcd202ed249870c8e895b26664fd7298abea7282", + "https://bcr.bazel.build/modules/boringssl/0.0.0-20240530-2db0eb3/MODULE.bazel": "d0405b762c5e87cd445b7015f2b8da5400ef9a8dbca0bfefa6c1cea79d528a97", + "https://bcr.bazel.build/modules/boringssl/0.20240913.0/MODULE.bazel": "fcaa7503a5213290831a91ed1eb538551cf11ac0bc3a6ad92d0fef92c5bd25fb", + "https://bcr.bazel.build/modules/boringssl/0.20241024.0/MODULE.bazel": "b540cff73d948cb79cb0bc108d7cef391d2098a25adabfda5043e4ef548dbc87", + "https://bcr.bazel.build/modules/boringssl/0.20241024.0/source.json": "d843092e682b84188c043ac742965d7f96e04c846c7e338187e03238674909a9", + "https://bcr.bazel.build/modules/buildozer/8.5.1/MODULE.bazel": "a35d9561b3fc5b18797c330793e99e3b834a473d5fbd3d7d7634aafc9bdb6f8f", + "https://bcr.bazel.build/modules/buildozer/8.5.1/source.json": "e3386e6ff4529f2442800dee47ad28d3e6487f36a1f75ae39ae56c70f0cd2fbd", + "https://bcr.bazel.build/modules/c-ares/1.15.0/MODULE.bazel": "ba0a78360fdc83f02f437a9e7df0532ad1fbaa59b722f6e715c11effebaa0166", + "https://bcr.bazel.build/modules/c-ares/1.16.1/MODULE.bazel": "145c2d47cfc2ada6991f4fbd81ef8b48af576a687b3bf17bd8f617ef59a4fe3c", + "https://bcr.bazel.build/modules/c-ares/1.19.1/MODULE.bazel": "73bca21720772370ff91cc8e88bbbaf14897720c6473e87c1ddc0f848284c313", + "https://bcr.bazel.build/modules/c-ares/1.34.5.bcr.2/MODULE.bazel": "740a10b6128069dda9f5fddcadf6df5833e02e87497a8d7b2407076197bf27c8", + "https://bcr.bazel.build/modules/c-ares/1.34.5.bcr.2/source.json": "b0001c9e2dfd636120b5133995a1dd80b2b7b988d8b17449207c21c046340125", + "https://bcr.bazel.build/modules/cel-spec/0.15.0/MODULE.bazel": "e1eed53d233acbdcf024b4b0bc1528116d92c29713251b5154078ab1348cb600", + "https://bcr.bazel.build/modules/cel-spec/0.24.0/MODULE.bazel": "e310c7aff8490ed689ccafd32729b77a660b9547f5a5ba9b20e967011c324b36", + "https://bcr.bazel.build/modules/cel-spec/0.25.1/MODULE.bazel": "72d9f7a9cdf072c659a1afa145d217b42f51fb40ab2dfa348f8e3e6686a3931a", + "https://bcr.bazel.build/modules/cel-spec/0.25.1/source.json": "af0408f0108ba99b834e426b83205ead3eb820a55dd9ef8a78b2512d751e4072", + "https://bcr.bazel.build/modules/civetweb/1.16/MODULE.bazel": "46a38f9daeb57392e3827fce7d40926be0c802bd23cdd6bfd3a96c804de42fae", + "https://bcr.bazel.build/modules/civetweb/1.16/source.json": "ba8b9585adb8355cb51b999d57172fd05e7a762c56b8d4bac6db42c99de3beb7", + "https://bcr.bazel.build/modules/curl/8.4.0/MODULE.bazel": "0bc250aa1cb69590049383df7a9537c809591fcf876c620f5f097c58fdc9bc10", + "https://bcr.bazel.build/modules/curl/8.7.1/MODULE.bazel": "088221c35a2939c555e6e47cb31a81c15f8b59f4daa8009b1e9271a502d33485", + "https://bcr.bazel.build/modules/curl/8.8.0/MODULE.bazel": "7da3b3e79b0b4ee8f8c95d640bc6ad7b430ce66ef6e9c9d2bc29b3b5ef85f6fe", + "https://bcr.bazel.build/modules/curl/8.8.0/source.json": "d7d138b6878cf38891692fee0649ace35357fd549b425614d571786f054374d4", + "https://bcr.bazel.build/modules/cython/3.0.11-1/MODULE.bazel": "868b3f5c956c3657420d2302004c6bb92606bfa47e314bab7f2ba0630c7c966c", + "https://bcr.bazel.build/modules/cython/3.0.11-1/source.json": "da318be900b8ca9c3d1018839d3bebc5a8e1645620d0848fa2c696d4ecf7c296", + "https://bcr.bazel.build/modules/engflowapis-java/2025.03.14-12.58.52/MODULE.bazel": "0bc7f5aaf312120f93f9a94358873f9b0f0fda52df278412802826c40ef9e674", + "https://bcr.bazel.build/modules/engflowapis-java/2025.03.14-12.58.52/source.json": "525b25d48667a06ec42d6716bb30fddf8b447c1ffb4ac1dc7c310d5298ab92bb", + "https://bcr.bazel.build/modules/engflowapis/2025.03.14-12.58.52/MODULE.bazel": "d74be8c2157a24d6abd9b1bc9682bbf5c85e5e34b576788a49b2aca05a9b15ec", + "https://bcr.bazel.build/modules/engflowapis/2025.03.14-12.58.52/source.json": "eb6fce4f19333699e43687281d276db4f3302fb21d5b31f7da03e8d4c4269176", + "https://bcr.bazel.build/modules/envoy_api/0.0.0-20241214-918efc9/MODULE.bazel": "24e05f6f52f37be63a795192848555a2c8c855e7814dbc1ed419fb04a7005464", + "https://bcr.bazel.build/modules/envoy_api/0.0.0-20250128-4de3c74/MODULE.bazel": "1fe72489212c530086e3ffb0e018b2bfef4663200ca03571570f9f006bef1d75", + "https://bcr.bazel.build/modules/envoy_api/0.0.0-20251105-4a2b9a3/MODULE.bazel": "b66e87a0e0c2207f07e35c321388eb1feb036344565977444b52912c53a84466", + "https://bcr.bazel.build/modules/envoy_api/0.0.0-20251216-6ef568c/MODULE.bazel": "973a645d56113ca424f9c7f1b5dca4f7aceecc34391eb81eb7f20c6c7652c0c1", + "https://bcr.bazel.build/modules/envoy_api/0.0.0-20251216-6ef568c/source.json": "202d7883af5608074ed1bf8a8a82f1c869ffc3408adefc765ebc05b602edcc72", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/source.json": "fa7b512dfcb5eafd90ce3959cf42a2a6fe96144ebbb4b3b3928054895f2afac2", + "https://bcr.bazel.build/modules/gazelle/0.27.0/MODULE.bazel": "3446abd608295de6d90b4a8a118ed64a9ce11dcb3dda2dc3290a22056bd20996", + "https://bcr.bazel.build/modules/gazelle/0.30.0/MODULE.bazel": "f888a1effe338491f35f0e0e85003b47bb9d8295ccba73c37e07702d8d31c65b", + "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8", + "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350", + "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a", + "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0", + "https://bcr.bazel.build/modules/gazelle/0.37.0/MODULE.bazel": "d1327ba0907d0275ed5103bfbbb13518f6c04955b402213319d0d6c0ce9839d4", + "https://bcr.bazel.build/modules/gazelle/0.39.1/MODULE.bazel": "1fa3fefad240e535066fd0e6950dfccd627d36dc699ee0034645e51dbde3980f", + "https://bcr.bazel.build/modules/gazelle/0.40.0/MODULE.bazel": "42ba5378ebe845fca43989a53186ab436d956db498acde790685fe0e8f9c6146", + "https://bcr.bazel.build/modules/gazelle/0.45.0/MODULE.bazel": "ecd19ebe9f8e024e1ccffb6d997cc893a974bcc581f1ae08f386bdd448b10687", + "https://bcr.bazel.build/modules/gazelle/0.46.0/MODULE.bazel": "3dec215dacf2427df87b524a2c99da387882a18d753f0b1b38675992bd0a99c6", + "https://bcr.bazel.build/modules/gazelle/0.47.0/MODULE.bazel": "b61bb007c4efad134aa30ee7f4a8e2a39b22aa5685f005edaa022fbd1de43ebc", + "https://bcr.bazel.build/modules/gazelle/0.51.1/MODULE.bazel": "54d11f87fd9ae1d7791a27d54378a847523ddf7910036c31ccb902528adfdebb", + "https://bcr.bazel.build/modules/gazelle/0.51.1/source.json": "5fa9b417bb11343de5f15d9d898d6ae32c164117f9d10f1b5e59c70a207ee510", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/google_benchmark/1.8.4/MODULE.bazel": "c6d54a11dcf64ee63545f42561eda3fd94c1b5f5ebe1357011de63ae33739d5e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.5/MODULE.bazel": "9ba9b31b984022828a950e3300410977eda2e35df35584c6b0b2d0c2e52766b7", + "https://bcr.bazel.build/modules/google_benchmark/1.9.4/MODULE.bazel": "3bab7c17c10580f87b647478a72a05621f88abc275afb97b578c828f56e59d45", + "https://bcr.bazel.build/modules/google_benchmark/1.9.4/source.json": "8e0036f76a5c2aa9c16ca0da57d8065cff69edeed58f1f85584c588c0ef723a5", + "https://bcr.bazel.build/modules/googleapis-cc/1.0.0/MODULE.bazel": "cf01757e7590c56140a4b81638ff2b3e7074769e6271720bbf738fcda25b6fc2", + "https://bcr.bazel.build/modules/googleapis-cc/1.0.0/source.json": "ab0e3a2ee9968a8848f59872fbbfa3e1f768597d71d2229e6caa319d357967c7", + "https://bcr.bazel.build/modules/googleapis-go/1.0.0/MODULE.bazel": "0a207a4c49da28c5cc1f7b3aeb23c2f7828c85c14aa8d9db0e30357a8d2250ed", + "https://bcr.bazel.build/modules/googleapis-grpc-cc/1.0.0/MODULE.bazel": "3553358a9d8d96026c9e28d9fb6c268574950d0be7fa9b4c0aeaf3c37c73f2d3", + "https://bcr.bazel.build/modules/googleapis-grpc-cc/1.0.0/source.json": "fa7b79043b3c82bf74f1f2fa45af289e19b247375868d0752db2c114a1c7366c", + "https://bcr.bazel.build/modules/googleapis-java/1.0.0/MODULE.bazel": "d633989337d069b5a95e6101777319681d7a4af4677e36801f11839d6512095c", + "https://bcr.bazel.build/modules/googleapis-python/1.0.0/MODULE.bazel": "0ccd1614a914fb524b3ac267f9c97f9a5cd5412b027f0176b81a725882ec42ff", + "https://bcr.bazel.build/modules/googleapis-python/1.0.0/source.json": "24364f075ec5e6d5e0cfc5d651bd833b119e0cea1a45d51330c93461e3586e42", + "https://bcr.bazel.build/modules/googleapis-rules-registry/1.0.0/MODULE.bazel": "97c6a4d413b373d4cc97065da3de1b2166e22cbbb5f4cc9f05760bfa83619e24", + "https://bcr.bazel.build/modules/googleapis-rules-registry/1.1.5/MODULE.bazel": "1d86d561d7aa0aebc2004216197b48ee74427425c20d3a07de9f47cf73a6211c", + "https://bcr.bazel.build/modules/googleapis-rules-registry/1.1.5/source.json": "a896717acb31282b716d5596c686d038b362ae6a761894867b20aa0158fcdf38", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20240326-1c8d509c5/MODULE.bazel": "a4b7e46393c1cdcc5a00e6f85524467c48c565256b22b5fae20f84ab4a999a68", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20240819-fe8ba054a/MODULE.bazel": "117b7c7be7327ed5d6c482274533f2dbd78631313f607094d4625c28203cacdf", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20241220-5e258e33.bcr.1/MODULE.bazel": "ee6c30f82ecd476e61f019fb1151aaab380ea419958ff274ef2f0efca7969f5c", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20251003-2193a2bf/MODULE.bazel": "cc9e5ed294ed9ebf42cdbbdddd2df29048519e3797004df1e3f369f31ff4f2d4", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20260525-ef19b7b7/MODULE.bazel": "2d43fa5203ff248905bd2b5d8b14864209a6a86fc2ee7befea676bcf7243bf7c", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20260525-ef19b7b7/source.json": "8c52f8c307e2a549bae73b6efe7e661388d03a7bfdae67b758ddbb3858ac89bd", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", + "https://bcr.bazel.build/modules/googletest/1.16.0/MODULE.bazel": "a175623c69e94fca4ca7acbc12031e637b0c489318cd4805606981d4d7adb34a", + "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", + "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", + "https://bcr.bazel.build/modules/grpc-java/1.62.2/MODULE.bazel": "99b8771e8c7cacb130170fed2a10c9e8fed26334a93e73b42d2953250885a158", + "https://bcr.bazel.build/modules/grpc-java/1.66.0/MODULE.bazel": "86ff26209fac846adb89db11f3714b3dc0090fb2fb81575673cc74880cda4e7e", + "https://bcr.bazel.build/modules/grpc-java/1.67.1/MODULE.bazel": "51c271a148c69f309fc7f2cdcb6bd6ee2716622e49e8a107993132a22bdc1395", + "https://bcr.bazel.build/modules/grpc-java/1.69.0/MODULE.bazel": "53887af6a00b3b406d70175d3d07e84ea9362016ff55ea90b9185f0227bfaf98", + "https://bcr.bazel.build/modules/grpc-java/1.78.0.bcr.1/MODULE.bazel": "6f7f936062401c189a95781ba8dd746994f1e0b4d8a6842bcb46e5d3ab85dd1d", + "https://bcr.bazel.build/modules/grpc-java/1.78.0.bcr.1/source.json": "1857a0b0cd4aef19c984ac324bd0979a34f4dd019f1152751d1ef75cee122341", + "https://bcr.bazel.build/modules/grpc-proto/0.0.0-20240627-ec30f58/MODULE.bazel": "88de79051e668a04726e9ea94a481ec6f1692086735fd6f488ab908b3b909238", + "https://bcr.bazel.build/modules/grpc-proto/0.0.0-20240627-ec30f58/source.json": "5035d379c61042930244ab59e750106d893ec440add92ec0df6a0098ca7f131d", + "https://bcr.bazel.build/modules/grpc/1.41.0/MODULE.bazel": "5bcbfc2b274dabea628f0649dc50c90cf36543b1cfc31624832538644ad1aae8", + "https://bcr.bazel.build/modules/grpc/1.56.3.bcr.1/MODULE.bazel": "cd5b1eb276b806ec5ab85032921f24acc51735a69ace781be586880af20ab33f", + "https://bcr.bazel.build/modules/grpc/1.62.1/MODULE.bazel": "2998211594b8a79a6b459c4e797cfa19f0fb8b3be3149760ec7b8c99abfd426f", + "https://bcr.bazel.build/modules/grpc/1.63.1.bcr.1/MODULE.bazel": "d7b9fef03bd175e6825237b521b18a3c29f1ac15f8aa52c8a1a0f3bd8f33d54b", + "https://bcr.bazel.build/modules/grpc/1.66.0.bcr.2/MODULE.bazel": "0fa2b0fd028ce354febf0fe90f1ed8fecfbfc33118cddd95ac0418cc283333a0", + "https://bcr.bazel.build/modules/grpc/1.66.0.bcr.3/MODULE.bazel": "f6047e89faf488f5e3e65cb2594c6f5e86992abec7487163ff6b623526e543b0", + "https://bcr.bazel.build/modules/grpc/1.68.0/MODULE.bazel": "6691126221dbfd615990cc81d0d9705b74937dbc4206fb9921cb0fc7b4fd4c6a", + "https://bcr.bazel.build/modules/grpc/1.69.0/MODULE.bazel": "4e26e05c9e1ef291ccbc96aad8e457b1b8abedbc141623831629da2f8168eef6", + "https://bcr.bazel.build/modules/grpc/1.71.0/MODULE.bazel": "7fcab2c05530373f1a442c362b17740dd0c75b6a2a975eec8f5bf4c70a37928a", + "https://bcr.bazel.build/modules/grpc/1.74.1/MODULE.bazel": "09523be10ba2bfd999683671d0f8f22fb5b20ec77ad89b05ef58ff19a1b65c82", + "https://bcr.bazel.build/modules/grpc/1.76.0.bcr.1/MODULE.bazel": "09b252536112acccdc7547cdfe16526a46408f570263f71491c813315f2efc45", + "https://bcr.bazel.build/modules/grpc/1.81.0/MODULE.bazel": "ccc0e32b30f935432230e99c99a03ef40ecb0a05ec313144620836a7ac6577f2", + "https://bcr.bazel.build/modules/grpc/1.81.0/source.json": "9dc7811c51397cd808357ac124c5d61c9c6c1c6bf9cbd40d0494deee42eed0db", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6.bcr.2/MODULE.bazel": "64f508885f907ac2518039b3d0c5c1703a8f6137d9f5d635067ba93d33c2670a", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6.bcr.2/source.json": "13199fa0a267ca46814e9e6ab313a71890c8f1822e57376fdc23a2d2cd384051", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", + "https://bcr.bazel.build/modules/libpfm/4.11.0.bcr.1/MODULE.bazel": "e5362dadc90aab6724c83a2cc1e67cbed9c89a05d97fb1f90053c8deb1e445c8", + "https://bcr.bazel.build/modules/libpfm/4.11.0.bcr.1/source.json": "0646414d9037f8aad148781dd760bec90b0b25ac12fda5e03f8aadbd6b9c61e6", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/mbedtls/3.6.0/MODULE.bazel": "8e380e4698107c5f8766264d4df92e36766248447858db28187151d884995a09", + "https://bcr.bazel.build/modules/mbedtls/3.6.0/source.json": "1dbe7eb5258050afcc3806b9d43050f71c6f539ce0175535c670df606790b30c", + "https://bcr.bazel.build/modules/nlohmann_json/3.11.3/MODULE.bazel": "87023db2f55fc3a9949c7b08dc711fae4d4be339a80a99d04453c4bb3998eefc", + "https://bcr.bazel.build/modules/nlohmann_json/3.12.0.bcr.1/MODULE.bazel": "a1c8bb07b5b91d971727c635f449d05623ac9608f6fe4f5f04254ea12f08e349", + "https://bcr.bazel.build/modules/nlohmann_json/3.12.0.bcr.1/source.json": "93f82a5ae985eb935c539bfee95e04767187818189241ac956f3ccadbdb8fb02", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", + "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de.bcr.2/MODULE.bazel": "cc18734138dd18c912c6ce2a59186db28f85d8058c99c9f21b46ca3e0aba0ebe", + "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de.bcr.2/source.json": "7c135f9d42bb3b045669c3c6ab3bb3c208e00b46aca4422eea64c29811a5b240", + "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de/MODULE.bazel": "02201d2921dadb4ec90c4980eca4b2a02904eddcf6fa02f3da7594fb7b0d821c", + "https://bcr.bazel.build/modules/opencensus-proto/0.4.1.bcr.2/MODULE.bazel": "789706a714855f92c5c8cfcf1ef32bbb64dcd3b7c9066756ad7986ec59709d29", + "https://bcr.bazel.build/modules/opencensus-proto/0.4.1.bcr.2/source.json": "aadf3f53e08b72376506b7c4ea3d167010c9efb160d7d6e1e304ed646bac1b36", + "https://bcr.bazel.build/modules/opencensus-proto/0.4.1/MODULE.bazel": "4a2e8b4d0b544002502474d611a5a183aa282251e14f6a01afe841c0c1b10372", + "https://bcr.bazel.build/modules/openssl/3.3.1.bcr.1/MODULE.bazel": "49c0c07e8fb87b480bccb842cfee1b32617f11dac590f732573c69058699a3d1", + "https://bcr.bazel.build/modules/openssl/3.3.1.bcr.1/source.json": "0c0872e048bbea052a9c541fb47019481a19201ba5555a71d762ad591bf94e1f", + "https://bcr.bazel.build/modules/opentelemetry-cpp/1.14.2/MODULE.bazel": "089a5613c2a159c7dfde098dabfc61e966889c7d6a81a98422a84c51535ed17d", + "https://bcr.bazel.build/modules/opentelemetry-cpp/1.16.0/MODULE.bazel": "b7379a140f538cea3f749179a2d481ed81942cc6f7b05a6113723eb34ac3b3e7", + "https://bcr.bazel.build/modules/opentelemetry-cpp/1.19.0/MODULE.bazel": "3455326c08b28415648a3d60d8e3c811847ebdbe64474f75b25878f25585aea1", + "https://bcr.bazel.build/modules/opentelemetry-cpp/1.19.0/source.json": "4e48137e4c3ecb99401ff99876df8fa330598d7da051869bec643446e8a8ff95", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.1.0/MODULE.bazel": "a49f406e99bf05ab43ed4f5b3322fbd33adfd484b6546948929d1316299b68bf", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.3.1/MODULE.bazel": "0141a50e989576ee064c11ce8dd5ec89993525bd9f9a09c5618e4dacc8df9352", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.4.0.bcr.1/MODULE.bazel": "5ceaf25e11170d22eded4c8032728b4a3f273765fccda32f9e94f463755c4167", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.5.0/MODULE.bazel": "7543d91a53b98e7b5b37c5a0865b93bff12c1ee022b1e322cd236b968894b030", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.8.0/MODULE.bazel": "0db9b378be8c5608058d31a4bad0b2194bbb349f7ac484fdfb5ad315c58b15aa", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.8.0/source.json": "407cd35e6a9ec89e542a575f4107bd637813170e68129c8f7471b341824b23e7", + "https://bcr.bazel.build/modules/opentracing-cpp/1.6.0/MODULE.bazel": "b3925269f63561b8b880ae7cf62ccf81f6ece55b62cd791eda9925147ae116ec", + "https://bcr.bazel.build/modules/opentracing-cpp/1.6.0/source.json": "da1cb1add160f5e5074b7272e9db6fd8f1b3336c15032cd0a653af9d2f484aed", + "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.5/MODULE.bazel": "ef4f9439e3270fdd6b9fd4dbc3d2f29d13888e44c529a1b243f7a31dfbc2e8e4", + "https://bcr.bazel.build/modules/package_metadata/0.0.7/MODULE.bazel": "7adb03933fc8401f495800cf4eafcff0edc6da0ff55c7db223ef69d19f689486", + "https://bcr.bazel.build/modules/package_metadata/0.0.7/source.json": "50639625e937b56115012674c797cca7a05a96b4878c87d803c13dc2b31de8a0", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/prometheus-cpp/1.2.4/MODULE.bazel": "0fbe5dcff66311947a3f6b86ebc6a6d9328e31a28413ca864debc4a043f371e5", + "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0.bcr.1/MODULE.bazel": "116ad46e97c1d2aeb020fe2899a342a7e703574ce7c0faf7e4810f938c974a9a", + "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0.bcr.1/source.json": "e813cce2d450708cfcb26e309c5172583a7440776edf354e83e6788c768e5cca", + "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0/MODULE.bazel": "ce82e086bbc0b60267e970f6a54b2ca6d0f22d3eb6633e00e2cc2899c700f3d8", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a", + "https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12", + "https://bcr.bazel.build/modules/protobuf/25.6/MODULE.bazel": "fc0ae073b47c7ede88b825ff79e64f1c058967c7a87a86cdf4abecd9e0516625", + "https://bcr.bazel.build/modules/protobuf/26.0.bcr.1/MODULE.bazel": "8f04d38c2da40a3715ff6bdce4d32c5981e6432557571482d43a62c31a24c2cf", + "https://bcr.bazel.build/modules/protobuf/26.0.bcr.2/MODULE.bazel": "62e0b84ca727bdeb55a6fe1ef180e6b191bbe548a58305ea1426c158067be534", + "https://bcr.bazel.build/modules/protobuf/26.0/MODULE.bazel": "8402da964092af40097f4a205eec2a33fd4a7748dc43632b7d1629bfd9a2b856", + "https://bcr.bazel.build/modules/protobuf/27.0-rc2/MODULE.bazel": "b2b0dbafd57b6bec0ca9b251da02e628c357dab53a097570aa7d79d020f107cf", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/27.2/MODULE.bazel": "32450b50673882e4c8c3d10a83f3bc82161b213ed2f80d17e38bece8f165c295", + "https://bcr.bazel.build/modules/protobuf/28.2/MODULE.bazel": "c0c8e51757df486d0314fa290e174d707bad4a6c2aa5ccb08a4b4abd76a23e90", + "https://bcr.bazel.build/modules/protobuf/28.3/MODULE.bazel": "2b3764bbab2e46703412bd3b859efcf0322638ed015e88432df3bb740507a1e9", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2.bcr.1/MODULE.bazel": "52f4126f63a2f0bbf36b99c2a87648f08467a4eaf92ba726bc7d6a500bbf770c", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/29.3/MODULE.bazel": "77480eea5fb5541903e49683f24dc3e09f4a79e0eea247414887bb9fc0066e94", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/protobuf/30.0/MODULE.bazel": "0e736de5d52ad7824113f47e65256a26ee74b689ba859c5447a0663e5a075409", + "https://bcr.bazel.build/modules/protobuf/31.1/MODULE.bazel": "379a389bb330b7b8c1cdf331cc90bf3e13de5614799b3b52cdb7c6f389f6b38e", + "https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d", + "https://bcr.bazel.build/modules/protobuf/33.0/MODULE.bazel": "c5270efb4aad37a2f893536076518793f409ea7df07a06df995d848d1690f21c", + "https://bcr.bazel.build/modules/protobuf/33.4/MODULE.bazel": "114775b816b38b6d0ca620450d6b02550c60ceedfdc8d9a229833b34a223dc42", + "https://bcr.bazel.build/modules/protobuf/33.5/MODULE.bazel": "df58cd1c41c9d1257afa7f3110b23d970c107bf806b2e4d8c59a344d05504b0c", + "https://bcr.bazel.build/modules/protobuf/34.0.bcr.1/MODULE.bazel": "74e541b0ba877813da786a11707d4e394433c157841d5111a36be0d44b907931", + "https://bcr.bazel.build/modules/protobuf/35.0/MODULE.bazel": "ee97170c013d94c366bbb5fe8a97b0650477cbc00e5e0f6a2c297484bc34d81b", + "https://bcr.bazel.build/modules/protobuf/35.0/source.json": "2162e80adef862606ba85ae42e0df85eb519376fd6ab49caddee6fb776a1281e", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.0.4.bcr.2/MODULE.bazel": "c4bd2c850211ff5b7dadf9d2d0496c1c922fdedc303c775b01dfd3b3efc907ed", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.0.4/MODULE.bazel": "b8913c154b16177990f6126d2d2477d187f9ddc568e95ee3e2d50fc65d2c494a", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.2.1.bcr.1/MODULE.bazel": "4bf09676b62fa587ae07e073420a76ec8766dcce7545e5f8c68cfa8e484b5120", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.2.1.bcr.2/MODULE.bazel": "3bd4b14a8e7c78dbef973280deabaa139db1fe350aa92da03730a31f59082068", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.2.1.bcr.2/source.json": "14c28a5527fcd699f5efbf83a046666efabed3384364bd48428de89dfdc8110e", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.2.1/MODULE.bazel": "52b51f50533ec4fbd5d613cd093773f979ac2e035d954e02ca11de383f502505", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", + "https://bcr.bazel.build/modules/pybind11_bazel/3.0.0/MODULE.bazel": "a2bfa6020ed603a00d944161c63173c7f109774e99bee0c2cd8dbf24159f8134", + "https://bcr.bazel.build/modules/pybind11_bazel/3.0.0/source.json": "d8f5104d4c21d272bf327ebe44366fb0b4c036cdaa1f5cceb21a408ca4ef2ef8", + "https://bcr.bazel.build/modules/rapidjson/1.1.0.bcr.20241007/MODULE.bazel": "82fbcb2e42f9e0040e76ccc74c06c3e46dfd33c64ca359293f8b84df0e6dff4c", + "https://bcr.bazel.build/modules/rapidjson/1.1.0.bcr.20241007/source.json": "5c42389ad0e21fc06b95ad7c0b730008271624a2fa3292e0eab5f30e15adeee3", + "https://bcr.bazel.build/modules/re2/2021-09-01/MODULE.bazel": "bcb6b96f3b071e6fe2d8bed9cc8ada137a105f9d2c5912e91d27528b3d123833", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2024-05-01/MODULE.bazel": "55a3f059538f381107824e7d00df5df6d061ba1fb80e874e4909c0f0549e8f3e", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", + "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", + "https://bcr.bazel.build/modules/re2/2025-11-05.bcr.1/MODULE.bazel": "3d9d4995833fc0334fc5c88b56a05288dd25d651544cd7b2233bbd6357bbeba0", + "https://bcr.bazel.build/modules/re2/2025-11-05.bcr.1/source.json": "7df1394aabda1c9bc188a302f5d54b1c657924edd04ebc57d2be29dbd7efd141", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.6.4/MODULE.bazel": "b4cde12d506dd65d82b2be39761f49f5797303343a3d5b4ee191c0cdf9ef387c", + "https://bcr.bazel.build/modules/rules_android/0.7.1/MODULE.bazel": "a806fc382a774252f228a40e3b11b9fcc6276f8778c7fb33e9f72937c6258363", + "https://bcr.bazel.build/modules/rules_android/0.7.1/source.json": "151440aed3f0f73a00d4ed5cec5d31f63a6fef9b95d8fab1eb1810150fa525f2", + "https://bcr.bazel.build/modules/rules_apple/3.13.0/MODULE.bazel": "b4559a2c6281ca3165275bb36c1f0ac74666632adc5bdb680e366de7ce845f43", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", + "https://bcr.bazel.build/modules/rules_apple/3.5.1/MODULE.bazel": "3d1bbf65ad3692003d36d8a29eff54d4e5c1c5f4bfb60f79e28646a924d9101c", + "https://bcr.bazel.build/modules/rules_apple/4.1.0/MODULE.bazel": "76e10fd4a48038d3fc7c5dc6e63b7063bbf5304a2e3bd42edda6ec660eebea68", + "https://bcr.bazel.build/modules/rules_apple/5.0.0-rc2/MODULE.bazel": "3761cdbc000d4cffc21138e66c14e19b56ccb212636c12093d225cb118c28c8c", + "https://bcr.bazel.build/modules/rules_apple/5.0.0-rc2/source.json": "7e412e23d5e3f43bd0ec84918f2e2e4dd19d6e84c66885f3a78fd8b085cb1b05", + "https://bcr.bazel.build/modules/rules_buf/0.1.1/MODULE.bazel": "6189aec18a4f7caff599ad41b851ab7645d4f1e114aa6431acf9b0666eb92162", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.5/MODULE.bazel": "be41f87587998fe8890cd82ea4e848ed8eb799e053c224f78f3ff7fe1a1d9b74", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.2/MODULE.bazel": "557ddc3a96858ec0d465a87c0a931054d7dcfd6583af2c7ed3baf494407fd8d0", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c", + "https://bcr.bazel.build/modules/rules_cc/0.2.13/MODULE.bazel": "eecdd666eda6be16a8d9dc15e44b5c75133405e820f620a234acc4b1fdc5aa37", + "https://bcr.bazel.build/modules/rules_cc/0.2.14/MODULE.bazel": "353c99ed148887ee89c54a17d4100ae7e7e436593d104b668476019023b58df8", + "https://bcr.bazel.build/modules/rules_cc/0.2.15/MODULE.bazel": "6a0a4a75a57aa6dc888300d848053a58c6b12a29f89d4304e1c41448514ec6e8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84", + "https://bcr.bazel.build/modules/rules_cc/0.2.19/MODULE.bazel": "d5e0f05b63273281a16654eb6b1a8742a75ec153ac8b4f0419949d6e401e46f0", + "https://bcr.bazel.build/modules/rules_cc/0.2.19/source.json": "1ef48cdbd7aa6238015189b582d3d74ef0cbea3cb3e2cb259d782463f570c14a", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", + "https://bcr.bazel.build/modules/rules_cc/0.2.9/MODULE.bazel": "34263f1dca62ea664265438cef714d7db124c03e1ed55ebb4f1dc860164308d1", + "https://bcr.bazel.build/modules/rules_dotnet/0.21.5/MODULE.bazel": "a4c0775561057593dd851c7f59f334336d73eb291eb9726e805d0466570bb0d7", + "https://bcr.bazel.build/modules/rules_dotnet/0.21.5/source.json": "f7a44e6aacb939042b8c0e3e9819d745a05228a283db369299ecf714cbac5608", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.10.1/MODULE.bazel": "b9527010e5fef060af92b6724edb3691970a5b1f76f74b21d39f7d433641be60", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_go/0.33.0/MODULE.bazel": "a2b11b64cd24bf94f57454f53288a5dacfe6cb86453eee7761b7637728c1910c", + "https://bcr.bazel.build/modules/rules_go/0.38.1/MODULE.bazel": "fb8e73dd3b6fc4ff9d260ceacd830114891d49904f5bda1c16bc147bcc254f71", + "https://bcr.bazel.build/modules/rules_go/0.39.1/MODULE.bazel": "d34fb2a249403a5f4339c754f1e63dc9e5ad70b47c5e97faee1441fc6636cd61", + "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", + "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270", + "https://bcr.bazel.build/modules/rules_go/0.45.1/MODULE.bazel": "6d7884f0edf890024eba8ab31a621faa98714df0ec9d512389519f0edff0281a", + "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd", + "https://bcr.bazel.build/modules/rules_go/0.48.0/MODULE.bazel": "d00ebcae0908ee3f5e6d53f68677a303d6d59a77beef879598700049c3980a03", + "https://bcr.bazel.build/modules/rules_go/0.49.0/MODULE.bazel": "61cfc1ba17123356d1b12b6c50f6e0162b2cc7fd6f51753c12471e973a0f72a5", + "https://bcr.bazel.build/modules/rules_go/0.50.1/MODULE.bazel": "b91a308dc5782bb0a8021ad4330c81fea5bda77f96b9e4c117b9b9c8f6665ee0", + "https://bcr.bazel.build/modules/rules_go/0.51.0-rc2/MODULE.bazel": "edfc3a9cea7bedb0eaaff37b0d7817c1a4bf72b3c615580b0ffcee6c52690fd4", + "https://bcr.bazel.build/modules/rules_go/0.53.0/MODULE.bazel": "a4ed760d3ac0dbc0d7b967631a9a3fd9100d28f7d9fcf214b4df87d4bfff5f9a", + "https://bcr.bazel.build/modules/rules_go/0.58.3/MODULE.bazel": "5582119a4a39558d8d1b1634bcae46043d4f43a31415e861c3551b2860040b5e", + "https://bcr.bazel.build/modules/rules_go/0.59.0/MODULE.bazel": "b7e43e7414a3139a7547d1b4909b29085fbe5182b6c58cbe1ed4c6272815aeae", + "https://bcr.bazel.build/modules/rules_go/0.61.0/MODULE.bazel": "aeccf0e379a7144723596766d3a56bebcdfc15362bd64e34601a67260c6f7ccd", + "https://bcr.bazel.build/modules/rules_go/0.61.0/source.json": "3b466ee8e8a044edf97928d91da79b86bc3543fe56639b8de4d4dfa95693e904", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.1.0/MODULE.bazel": "324b6478b0343a3ce7a9add8586ad75d24076d6d43d2f622990b9c1cfd8a1b15", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/5.5.0/MODULE.bazel": "486ad1aa15cdc881af632b4b1448b0136c76025a1fe1ad1b65c5899376b83a50", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.3.1/MODULE.bazel": "5a3471c8b84d53d58d5f6e316313680d7dd2c70afac696dbe14b761b0b5c6a06", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel": "30d9135a2b6561c761bd67bd4990da591e6bdc128790ce3e7afd6a3558b2fb64", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934", + "https://bcr.bazel.build/modules/rules_java/7.6.0/MODULE.bazel": "14cd36d05b60aa53c345b5b436c1c4a1f1dec58e82e480ffb9657038e323d330", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", + "https://bcr.bazel.build/modules/rules_java/8.16.1/MODULE.bazel": "0f20b1cecaa8e52f60a8f071e59a20b4e3b9a67f6c56c802ea256f6face692d3", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.0/MODULE.bazel": "c081eda83625b6d97144f2da9dd5f074ecd56ba10f238257e7a90f56ee8a9c3c", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/8.6.3/MODULE.bazel": "e90505b7a931d194245ffcfb6ff4ca8ef9d46b4e830d12e64817752e0198e2ed", + "https://bcr.bazel.build/modules/rules_java/8.7.0/MODULE.bazel": "7670fc42983b91b30a7142bbd3595ff6593d2bff908bc100b2e838f223c0653a", + "https://bcr.bazel.build/modules/rules_java/8.7.1/MODULE.bazel": "123a57f84c7f80d6f66b0c2486db3460ed8c4389f788ccbd35bb489b1ab23634", + "https://bcr.bazel.build/modules/rules_java/8.9.0/MODULE.bazel": "e17c876cb53dcd817b7b7f0d2985b710610169729e8c371b2221cacdcd3dce4a", + "https://bcr.bazel.build/modules/rules_java/9.1.0/MODULE.bazel": "ee63f27e36a3fada80342869361182f120a9819c74320e8e65b1e04ba0cd7a9d", + "https://bcr.bazel.build/modules/rules_java/9.3.0/MODULE.bazel": "f657c72d65ac449caae9abf2e68e66c0d36f9416848c4c4903d0b3234229e7f2", + "https://bcr.bazel.build/modules/rules_java/9.6.1/MODULE.bazel": "6b0b7172ce598e37e31d1e24f2a492a5249b88304bd25b02b465ee22e3aa3752", + "https://bcr.bazel.build/modules/rules_java/9.6.1/source.json": "d577c30fe3005821ac39c6ed43eb5accc77ff67c7b80f4043101aef4b027a903", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.0/MODULE.bazel": "37c93a5a78d32e895d52f86a8d0416176e915daabd029ccb5594db422e87c495", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.2/MODULE.bazel": "36a6e52487a855f33cb960724eb56547fa87e2c98a0474c3acad94339d7f8e99", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.6/MODULE.bazel": "153042249c7060536dc95b6bb9f9bb8063b8a0b0cb7acdb381bddbc2374aed55", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", + "https://bcr.bazel.build/modules/rules_jvm_external/6.8/MODULE.bazel": "b5afe861e867e4c8e5b88e401cb7955bd35924258f97b1862cc966cbcf4f1a62", + "https://bcr.bazel.build/modules/rules_jvm_external/6.9/MODULE.bazel": "07c5db05527db7744a54fcffd653e1550d40e0540207a7f7e6d0a4de5bef8274", + "https://bcr.bazel.build/modules/rules_jvm_external/7.0/MODULE.bazel": "421482bdbcf05709f933c96b867a599deb517f2804ceb3e74511880610cfbf71", + "https://bcr.bazel.build/modules/rules_jvm_external/7.0/source.json": "714cd003eadf5be5c83268311fe8e951db39f802babeaddc536b3560dc8f6faf", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.5/MODULE.bazel": "043a16a572f610558ec2030db3ff0c9938574e7dd9f58bded1bb07c0192ef025", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/2.2.2/MODULE.bazel": "00d39c5e0fa78cd86193946265bb849e7878c24e44260f9525108428852b315c", + "https://bcr.bazel.build/modules/rules_kotlin/2.3.20/MODULE.bazel": "3443d53d275e14fecfebd0b491f01d06ea3883c04a1b3336e7ae9d5ec9066bef", + "https://bcr.bazel.build/modules/rules_kotlin/2.3.20/source.json": "5a5553cffea43f2c5156c8ad0de4a14ad95413ceb39cd4d08f50e2aea86927e8", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/0.0.8/MODULE.bazel": "5669c6fe49b5134dbf534db681ad3d67a2d49cfc197e4a95f1ca2fd7f3aebe96", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a", + "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e", + "https://bcr.bazel.build/modules/rules_nodejs/6.7.4/MODULE.bazel": "e6a241a55c82e999145553d2e00a08fc6ebadf62b63d108fb5e984696ffd0bd2", + "https://bcr.bazel.build/modules/rules_nodejs/6.7.4/source.json": "34e7a8a3b4c8d630ac0e0492b3fed9dba41fe008a0edf220b7d88fa38ac53698", + "https://bcr.bazel.build/modules/rules_perl/0.2.4/MODULE.bazel": "5f5af7be4bf5fb88d91af7469518f0fd2161718aefc606188f7cd51f436ca938", + "https://bcr.bazel.build/modules/rules_perl/1.1.1/MODULE.bazel": "2e733bd2037550fceee66b4b627b1bc4c4a9ab183f389489387322b1804a2797", + "https://bcr.bazel.build/modules/rules_perl/1.1.1/source.json": "09c681f3a1d5e532bb18f74505be6b239d5f663650a514567ae6255e7740107c", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.20.0/MODULE.bazel": "bfe14d17f20e3fe900b9588f526f52c967a6f281e47a1d6b988679bd15082286", + "https://bcr.bazel.build/modules/rules_python/0.22.0/MODULE.bazel": "b8057bafa11a9e0f4b08fc3b7cd7bee0dcbccea209ac6fc9a3ff051cd03e19e9", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.29.0/MODULE.bazel": "2ac8cd70524b4b9ec49a0b8284c79e4cd86199296f82f6e0d5da3f783d660c82", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.32.2/MODULE.bazel": "01052470fc30b49de91fb8483d26bea6f664500cfad0b078d4605b03e3a83ed4", + "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", + "https://bcr.bazel.build/modules/rules_python/0.35.0/MODULE.bazel": "c3657951764cdcdb5a7370d5e885fad5e8c1583320aad18d46f9f110d2c22755", + "https://bcr.bazel.build/modules/rules_python/0.37.1/MODULE.bazel": "3faeb2d9fa0a81f8980643ee33f212308f4d93eea4b9ce6f36d0b742e71e9500", + "https://bcr.bazel.build/modules/rules_python/0.37.2/MODULE.bazel": "b5ffde91410745750b6c13be1c5dc4555ef5bc50562af4a89fd77807fdde626a", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6", + "https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8", + "https://bcr.bazel.build/modules/rules_python/1.6.3/MODULE.bazel": "a7b80c42cb3de5ee2a5fa1abc119684593704fcd2fec83165ebe615dec76574f", + "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8", + "https://bcr.bazel.build/modules/rules_python/2.0.2/MODULE.bazel": "9d26ecb43f248c2663fb29f3c9b833aa86c31e736096e58c7077f80038f8d32f", + "https://bcr.bazel.build/modules/rules_python/2.0.2/source.json": "36a74dedc1498bfbf72855568a24e6aa30c70b5ac7e114bc244c62b3a58b47fc", + "https://bcr.bazel.build/modules/rules_robolectric/4.14.1.2/MODULE.bazel": "d44fec647d0aeb67b9f3b980cf68ba634976f3ae7ccd6c07d790b59b87a4f251", + "https://bcr.bazel.build/modules/rules_robolectric/4.14.1.2/source.json": "37c10335f2361c337c5c1f34ed36d2da70534c23088062b33a8bdaab68aa9dea", + "https://bcr.bazel.build/modules/rules_rust/0.45.1/MODULE.bazel": "a69d0db3a958fab2c6520961e1b2287afcc8b36690fd31bbc4f6f7391397150d", + "https://bcr.bazel.build/modules/rules_rust/0.51.0/MODULE.bazel": "2b6d1617ac8503bfdcc0e4520c20539d4bba3a691100bee01afe193ceb0310f9", + "https://bcr.bazel.build/modules/rules_rust/0.69.0/MODULE.bazel": "4326fec48f2fef0d514de46346f7f77e200c82936dd08b91c9ef039fbdad5c10", + "https://bcr.bazel.build/modules/rules_rust/0.69.0/source.json": "0d094307d690cc18b3ab003998697be8070a206f65592c5c8476999796f11c4b", + "https://bcr.bazel.build/modules/rules_scala/7.2.5/MODULE.bazel": "c5f0ee85f6c6a081a19be8a54f34ba2c2e49adeea1e7d64600bb591c27007de3", + "https://bcr.bazel.build/modules/rules_scala/7.2.5/source.json": "25be05ededbad97a8eee6e6bc3353aeee2d39402c606c019a87b1655dcdd8175", + "https://bcr.bazel.build/modules/rules_shell/0.1.2/MODULE.bazel": "66e4ca3ce084b04af0b9ff05ff14cab4e5df7503973818bb91cbc6cda08d32fc", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.4.0/MODULE.bazel": "0f8f11bb3cd11755f0b48c1de0bbcf62b4b34421023aa41a2fc74ef68d9584f0", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.5.0/MODULE.bazel": "8c8447370594d45539f66858b602b0bb2cb2d3401a4ebb9ad25830c59c0f366d", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.8.0/MODULE.bazel": "f6a89f1d6a669a26f28fe814503857055d76306b79cfc11d12399af08d0b80ae", + "https://bcr.bazel.build/modules/rules_shell/0.8.0/source.json": "eb53cc815bc503c6683c5fe12d943f98883f81fc22f51403ec8a95610cba4195", + "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", + "https://bcr.bazel.build/modules/rules_swift/1.18.0/MODULE.bazel": "a6aba73625d0dc64c7b4a1e831549b6e375fbddb9d2dde9d80c9de6ec45b24c9", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", + "https://bcr.bazel.build/modules/rules_swift/2.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd", + "https://bcr.bazel.build/modules/rules_swift/2.5.0/MODULE.bazel": "6d2fec72be0ad2e1fc2eab536cf9d3fb149037c6d2aa678078f3512c06a819e1", + "https://bcr.bazel.build/modules/rules_swift/3.1.2/MODULE.bazel": "72c8f5cf9d26427cee6c76c8e3853eb46ce6b0412a081b2b6db6e8ad56267400", + "https://bcr.bazel.build/modules/rules_swift/3.6.1/MODULE.bazel": "5a68bb05b6b8044f8a7bd7184d56150189e7eca05522ce525517c234fed50ed8", + "https://bcr.bazel.build/modules/rules_swift/4.0.0-rc1/MODULE.bazel": "e372b183ec0dfb3a4a1333c8450ac01c0ecfee97f149d6919a39c7848e6e6ce7", + "https://bcr.bazel.build/modules/rules_swift/4.0.0-rc1/source.json": "3f6d91f16d7f495048ab83dd75cfd955066c6b28c2f18ad24ae2d40b138c462f", + "https://bcr.bazel.build/modules/stardoc/0.5.0/MODULE.bazel": "f9f1f46ba8d9c3362648eea571c6f9100680efc44913618811b58cc9c02cd678", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f", + "https://bcr.bazel.build/modules/swift_argument_parser/1.7.0/MODULE.bazel": "40d4e44950e44973dcf8590bcee637591de196b5dbe3696d07eb342b74d53672", + "https://bcr.bazel.build/modules/swift_argument_parser/1.7.0/source.json": "b9b952cba0c748083b9b891e6ac46d347c92d37e8a92ead96d2a54b966bacd87", + "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", + "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", + "https://bcr.bazel.build/modules/tar.bzl/0.5.1/source.json": "deed3094f7cc779ed1d37a68403847b0e38d9dd9d931e03cb90825f3368b515f", + "https://bcr.bazel.build/modules/toml.bzl/0.3.0/MODULE.bazel": "5016e5dd1ad2200e119a4b28b2b3935e276c4b480f2fe3e952bea7eeba88f578", + "https://bcr.bazel.build/modules/toml.bzl/0.3.0/source.json": "0cf7c878c419b37ddb55f3dd93dd7c0c409bd7c4efacb3da504e0748780b2fa9", + "https://bcr.bazel.build/modules/upb/0.0.0-20211020-160625a/MODULE.bazel": "6cced416be2dc5b9c05efd5b997049ba795e5e4e6fafbe1624f4587767638928", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9", + "https://bcr.bazel.build/modules/upb/0.0.0-20230907-e7430e6/MODULE.bazel": "3a7dedadf70346e678dc059dbe44d05cbf3ab17f1ce43a1c7a42edc7cbf93fd9", + "https://bcr.bazel.build/modules/xds/0.0.0-20240423-555b57e/MODULE.bazel": "cea509976a77e34131411684ef05a1d6ad194dd71a8d5816643bc5b0af16dc0f", + "https://bcr.bazel.build/modules/xds/0.0.0-20251210-ee656c7/MODULE.bazel": "03e1c50b16fc2403de5dd98ff8e2dc0b404865740434b8705c7c0853241f943d", + "https://bcr.bazel.build/modules/xds/0.0.0-20251210-ee656c7/source.json": "69b87f3bff38ba29399c012f3e3fc0f239ac4e5c1ae66ebd9481be6d8461da55", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3", + "https://bcr.bazel.build/modules/zipkin-api/1.0.0/MODULE.bazel": "86dc44be96aab387be0d5e00891e8bd16abd249e06ba2d7c9b0d974044c5f89a", + "https://bcr.bazel.build/modules/zipkin-api/1.0.0/source.json": "bed63c67529fb85a0809e1c564f553db167e7d87ab3303d7886e7cf45af7523b", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.2.13/MODULE.bazel": "aa6deb1b83c18ffecd940c4119aff9567cd0a671d7bba756741cb2ef043a29d5", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.1/MODULE.bazel": "6a9fe6e3fc865715a7be9823ce694ceb01e364c35f7a846bf0d2b34762bc066b", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198", + "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_rules_js+//npm:extensions.bzl%pnpm": { + "general": { + "bzlTransitiveDigest": "IXGzF0f+mCyPLrswS1JgWRNT9Vi/geDTGnMCsoVAVtg=", + "usagesDigest": "VcsfDFwmBt+ECaA/4/v9Ozpk8OnXWBpmy21oeFuDhZg=", + "recordedInputs": [ + "REPO_MAPPING:aspect_bazel_lib+,bazel_skylib bazel_skylib+", + "REPO_MAPPING:aspect_bazel_lib+,bazel_tools bazel_tools", + "REPO_MAPPING:aspect_rules_js+,aspect_bazel_lib aspect_bazel_lib+", + "REPO_MAPPING:aspect_rules_js+,bazel_features bazel_features+", + "REPO_MAPPING:aspect_rules_js+,bazel_skylib bazel_skylib+", + "REPO_MAPPING:aspect_rules_js+,bazel_tools bazel_tools", + "REPO_MAPPING:bazel_features+,bazel_features_globals bazel_features++version_extension+bazel_features_globals", + "REPO_MAPPING:bazel_features+,bazel_features_version bazel_features++version_extension+bazel_features_version" + ], + "generatedRepoSpecs": { + "pnpm": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_rule", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])", + "extract_full_archive": true, + "system_tar": "auto" + } + }, + "pnpm__links": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_links", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "package_visibility": [ + "//visibility:public" + ] + } + } + } + } + }, + "@@aspect_rules_ts+//ts:extensions.bzl%ext": { + "general": { + "bzlTransitiveDigest": "XQyG/pNDNTKYobWyPdbo1p8twKShTk51G5mVUm9v4/4=", + "usagesDigest": "YFCF4Pe3ZMqh53Xb1GbuZYKE5Q121NDwst+POer5vxE=", + "recordedInputs": [ + "REPO_MAPPING:aspect_rules_ts+,aspect_rules_ts aspect_rules_ts+", + "REPO_MAPPING:aspect_rules_ts+,bazel_tools bazel_tools" + ], + "generatedRepoSpecs": { + "npm_typescript": { + "repoRuleId": "@@aspect_rules_ts+//ts/private:npm_repositories.bzl%http_archive_version", + "attributes": { + "version": "6.0.3", + "integrity": "", + "urls": [ + "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" + ] + } + } + } + } + }, + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "ZfgvvqG7LOd6ntR6gVA0JP55mLnNTIlT/patFewZeI4=", + "recordedInputs": [ + "REPO_MAPPING:aspect_tools_telemetry+,bazel_lib bazel_lib+", + "REPO_MAPPING:aspect_tools_telemetry+,bazel_skylib bazel_skylib+" + ], + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_ts": "3.8.10", + "aspect_tools_telemetry": "0.3.3" + } + } + } + } + } + }, + "@@googleapis+//:extensions.bzl%switched_rules": { + "general": { + "bzlTransitiveDigest": "1ZTg77R3Ks/ksx8QMNIoTRJetbJPRlzGFlJa9hoUn+Y=", + "usagesDigest": "4qqLlQt9ukbtcljUbNd31KFkYT16jA3KGb6yYAFv+o4=", + "recordedInputs": [], + "generatedRepoSpecs": {} + } + }, + "@@pybind11_bazel+//:internal_configure.bzl%internal_configure_extension": { + "general": { + "bzlTransitiveDigest": "06cynZ1bCvvy8zHPrrDlXq+Z68xmjctHpfFxi+zEpJY=", + "usagesDigest": "D1r3lfzMuUBFxgG8V6o0bQTLMk3GkaGOaPzw53wrwyw=", + "recordedInputs": [ + "REPO_MAPPING:pybind11_bazel+,bazel_tools bazel_tools", + "FILE:@@pybind11_bazel+//MODULE.bazel e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34" + ], + "generatedRepoSpecs": { + "pybind11": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@pybind11_bazel+//:pybind11-BUILD.bazel", + "strip_prefix": "pybind11-2.12.0", + "urls": [ + "https://github.com/pybind/pybind11/archive/v2.12.0.zip" + ] + } + } + } + } + }, + "@@rules_android+//bzlmod_extensions:apksig.bzl%apksig_extension": { + "general": { + "bzlTransitiveDigest": "KrgiB8lWxqVdbipL9YIYOuGjS80xlZIM/EBvUg8SVd0=", + "usagesDigest": "0FXD4PX+vQ/jVne2oV4v3Cw5Mc9DZQ4yTcoRkAjj/X4=", + "recordedInputs": [ + "REPO_MAPPING:rules_android+,bazel_tools bazel_tools" + ], + "generatedRepoSpecs": { + "apksig": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "url": "https://android.googlesource.com/platform/tools/apksig/+archive/24e3075e68ebe17c0b529bb24bfda819db5e2f3b.tar.gz", + "build_file": "@@rules_android+//bzlmod_extensions:apksig.BUILD" + } + } + } + } + }, + "@@rules_android+//rules/android_sdk_repository:rule.bzl%android_sdk_repository_extension": { + "general": { + "bzlTransitiveDigest": "+rMrzIrv7sImYmkbXJYv+gFpTJQ79X3MpwwMLI2A+oA=", + "usagesDigest": "iEGI2aNDMkHt9LXCdViLNUUOslpiVj2DrevWWXZEFnU=", + "recordedInputs": [], + "generatedRepoSpecs": { + "androidsdk": { + "repoRuleId": "@@rules_android+//rules/android_sdk_repository:rule.bzl%_android_sdk_repository", + "attributes": {} + } + } + } + }, + "@@rules_dotnet+//dotnet:extensions.bzl%dotnet": { + "general": { + "bzlTransitiveDigest": "3NFH9+PfsEdlRhZtq3iPX8FRGmmgowYZvWUuTyxUYdw=", + "usagesDigest": "qQQQBpWRw+xLOIFnHBQesLseEbsQH6Uc3prC9OOlTQo=", + "recordedInputs": [], + "generatedRepoSpecs": { + "dotnet_x86_64-apple-darwin": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "x86_64-apple-darwin", + "dotnet_version": "8.0.200" + } + }, + "dotnet_aarch64-apple-darwin": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "aarch64-apple-darwin", + "dotnet_version": "8.0.200" + } + }, + "dotnet_x86_64-unknown-linux-gnu": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "x86_64-unknown-linux-gnu", + "dotnet_version": "8.0.200" + } + }, + "dotnet_arm64-unknown-linux-gnu": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "arm64-unknown-linux-gnu", + "dotnet_version": "8.0.200" + } + }, + "dotnet_x86_64-pc-windows-msvc": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "x86_64-pc-windows-msvc", + "dotnet_version": "8.0.200" + } + }, + "dotnet_arm64-pc-windows-msvc": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "arm64-pc-windows-msvc", + "dotnet_version": "8.0.200" + } + }, + "dotnet_toolchains": { + "repoRuleId": "@@rules_dotnet+//dotnet/private:toolchains_repo.bzl%toolchains_repo", + "attributes": { + "user_repository_name": "dotnet" + } + }, + "dotnet_apphost_x86_64-apple-darwin": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "x86_64-apple-darwin", + "dotnet_version": "10.0.100" + } + }, + "dotnet_apphost_aarch64-apple-darwin": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "aarch64-apple-darwin", + "dotnet_version": "10.0.100" + } + }, + "dotnet_apphost_x86_64-unknown-linux-gnu": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "x86_64-unknown-linux-gnu", + "dotnet_version": "10.0.100" + } + }, + "dotnet_apphost_arm64-unknown-linux-gnu": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "arm64-unknown-linux-gnu", + "dotnet_version": "10.0.100" + } + }, + "dotnet_apphost_x86_64-pc-windows-msvc": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "x86_64-pc-windows-msvc", + "dotnet_version": "10.0.100" + } + }, + "dotnet_apphost_arm64-pc-windows-msvc": { + "repoRuleId": "@@rules_dotnet+//dotnet:repositories.bzl%dotnet_repositories", + "attributes": { + "platform": "arm64-pc-windows-msvc", + "dotnet_version": "10.0.100" + } + }, + "dotnet_apphost_toolchains": { + "repoRuleId": "@@rules_dotnet+//dotnet/private:toolchains_repo.bzl%toolchains_repo", + "attributes": { + "user_repository_name": "dotnet_apphost" + } + } + } + } + }, + "@@rules_nodejs+//nodejs:extensions.bzl%node": { + "general": { + "bzlTransitiveDigest": "oZFClfRhTTwsYzpxVPkOpOt/r0+OzEfEV37au0jFZ0s=", + "usagesDigest": "qYuttIP10dHWDIBvF05PcUOdrEZvgePvSsVVmIkWe4Q=", + "recordedInputs": [], + "generatedRepoSpecs": { + "nodejs_linux_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "nodejs_linux_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "nodejs_linux_s390x": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "nodejs_linux_ppc64le": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "nodejs_darwin_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "nodejs_darwin_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "nodejs_windows_amd64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "nodejs_windows_arm64": { + "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.22.2", + "include_headers": false, + "platform": "windows_arm64" + } + }, + "nodejs": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_host": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_toolchains": { + "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "nodejs" + } + } + } + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "I8FPZMevE2oI/peSpMBRVIN++WOtfjtJVjbPsBZQ87A=", + "usagesDigest": "R0pij/Kri0Z/7GcM2UBot6XmOqgduje0j8y9wNMWjLA=", + "recordedInputs": [ + "REPO_MAPPING:rules_python+,bazel_tools bazel_tools", + "REPO_MAPPING:rules_python+,platforms platforms" + ], + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + } + } + }, + "@@tar.bzl+//tar:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "/2afh6fPjq/rcyE/jztQDK3ierehmFFngfvmqyRv72M=", + "usagesDigest": "maF8qsAIqeH1ey8pxP0gNZbvJt34kLZvTFeQ0ntrJVA=", + "recordedInputs": [], + "generatedRepoSpecs": { + "bsd_tar_toolchains": { + "repoRuleId": "@@tar.bzl+//tar/toolchain:toolchain.bzl%tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar_toolchains" + } + }, + "bsd_tar_toolchains_darwin_amd64": { + "repoRuleId": "@@tar.bzl+//tar/toolchain:platforms.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_toolchains_darwin_arm64": { + "repoRuleId": "@@tar.bzl+//tar/toolchain:platforms.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_toolchains_linux_amd64": { + "repoRuleId": "@@tar.bzl+//tar/toolchain:platforms.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "bsd_tar_toolchains_linux_arm64": { + "repoRuleId": "@@tar.bzl+//tar/toolchain:platforms.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_toolchains_windows_amd64": { + "repoRuleId": "@@tar.bzl+//tar/toolchain:platforms.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "bsd_tar_toolchains_windows_arm64": { + "repoRuleId": "@@tar.bzl+//tar/toolchain:platforms.bzl%bsdtar_binary_repo", + "attributes": { + "platform": "windows_arm64" + } + } + } + } + } + }, + "facts": { + "@@rules_go+//go:extensions.bzl%go_sdk": { + "1.22.4": { + "aix_ppc64": [ + "go1.22.4.aix-ppc64.tar.gz", + "b9647fa9fc83a0cc5d4f092a19eaeaecf45f063a5aa7d4962fde65aeb7ae6ce1" + ], + "darwin_amd64": [ + "go1.22.4.darwin-amd64.tar.gz", + "c95967f50aa4ace34af0c236cbdb49a9a3e80ee2ad09d85775cb4462a5c19ed3" + ], + "darwin_arm64": [ + "go1.22.4.darwin-arm64.tar.gz", + "242b78dc4c8f3d5435d28a0d2cec9b4c1aa999b601fb8aa59fb4e5a1364bf827" + ], + "dragonfly_amd64": [ + "go1.22.4.dragonfly-amd64.tar.gz", + "f2fbb51af4719d3616efb482d6ed2b96579b474156f85a7ddc6f126764feec4b" + ], + "freebsd_386": [ + "go1.22.4.freebsd-386.tar.gz", + "7c54884bb9f274884651d41e61d1bc12738863ad1497e97ea19ad0e9aa6bf7b5" + ], + "freebsd_amd64": [ + "go1.22.4.freebsd-amd64.tar.gz", + "88d44500e1701dd35797619774d6dd51bf60f45a8338b0a82ddc018e4e63fb78" + ], + "freebsd_arm64": [ + "go1.22.4.freebsd-arm64.tar.gz", + "726dc093cf020277be45debf03c3b02b43c2efb3e2a5d4fba8f52579d65327dc" + ], + "freebsd_armv6l": [ + "go1.22.4.freebsd-arm.tar.gz", + "3d9efe47db142a22679aba46b1772e3900b0d87ae13bd2b3bc80dbf2ac0b2cd6" + ], + "freebsd_riscv64": [ + "go1.22.4.freebsd-riscv64.tar.gz", + "5f6b67e5e32f1d6ccb2d4dcb44934a5e2e870a877ba7443d86ec43cfc28afa71" + ], + "illumos_amd64": [ + "go1.22.4.illumos-amd64.tar.gz", + "d56ecc2f85b6418a21ef83879594d0c42ab4f65391a676bb12254870e6690d63" + ], + "linux_386": [ + "go1.22.4.linux-386.tar.gz", + "47a2a8d249a91eb8605c33bceec63aedda0441a43eac47b4721e3975ff916cec" + ], + "linux_amd64": [ + "go1.22.4.linux-amd64.tar.gz", + "ba79d4526102575196273416239cca418a651e049c2b099f3159db85e7bade7d" + ], + "linux_arm64": [ + "go1.22.4.linux-arm64.tar.gz", + "a8e177c354d2e4a1b61020aca3562e27ea3e8f8247eca3170e3fa1e0c2f9e771" + ], + "linux_armv6l": [ + "go1.22.4.linux-armv6l.tar.gz", + "e2b143fbacbc9cbd448e9ef41ac3981f0488ce849af1cf37e2341d09670661de" + ], + "linux_loong64": [ + "go1.22.4.linux-loong64.tar.gz", + "e2ff9436e4b34bf6926b06d97916e26d67a909a2effec17967245900f0816f1d" + ], + "linux_mips": [ + "go1.22.4.linux-mips.tar.gz", + "73f0dcc60458c4770593b05a7bc01cc0d31fc98f948c0c2334812c7a1f2fc3f1" + ], + "linux_mips64": [ + "go1.22.4.linux-mips64.tar.gz", + "417af97fc2630a647052375768be4c38adcc5af946352ea5b28613ea81ca5d45" + ], + "linux_mips64le": [ + "go1.22.4.linux-mips64le.tar.gz", + "7486e2d7dd8c98eb44df815ace35a7fe7f30b7c02326e3741bd934077508139b" + ], + "linux_mipsle": [ + "go1.22.4.linux-mipsle.tar.gz", + "69479c8aad301e459a8365b40cad1074a0dbba5defb9291669f94809c4c4be6e" + ], + "linux_ppc64": [ + "go1.22.4.linux-ppc64.tar.gz", + "dd238847e65bc3e2745caca475a5db6522a2fcf85cf6c38fc36a06642b19efd7" + ], + "linux_ppc64le": [ + "go1.22.4.linux-ppc64le.tar.gz", + "a3e5834657ef92523f570f798fed42f1f87bc18222a16815ec76b84169649ec4" + ], + "linux_riscv64": [ + "go1.22.4.linux-riscv64.tar.gz", + "56a827ff7dc6245bcd7a1e9288dffaa1d8b0fd7468562264c1523daf3b4f1b4a" + ], + "linux_s390x": [ + "go1.22.4.linux-s390x.tar.gz", + "7590c3e278e2dc6040aae0a39da3ca1eb2e3921673a7304cc34d588c45889eec" + ], + "netbsd_386": [ + "go1.22.4.netbsd-386.tar.gz", + "ddd2eebe34471a2502de6c5dad04ab27c9fc80cbde7a9ad5b3c66ecec4504e1d" + ], + "netbsd_amd64": [ + "go1.22.4.netbsd-amd64.tar.gz", + "33af79f6f935f6fbacc5d23876450b3567b79348fc065beef8e64081127dd234" + ], + "netbsd_arm64": [ + "go1.22.4.netbsd-arm64.tar.gz", + "c9a2971dec9f6d320c6f2b049b2353c6d0a2d35e87b8a4b2d78a2f0d62545f8e" + ], + "netbsd_armv6l": [ + "go1.22.4.netbsd-arm.tar.gz", + "fa3550ebd5375a70b3bcd342b5a71f4bd271dcbbfaf4eabefa2144ab5d8924b6" + ], + "openbsd_386": [ + "go1.22.4.openbsd-386.tar.gz", + "d21af022331bfdc2b5b161d616c3a1a4573d33cf7a30416ee509a8f3641deb47" + ], + "openbsd_amd64": [ + "go1.22.4.openbsd-amd64.tar.gz", + "72c0094c43f7e5722ec49c2a3e9dfa7a1123ac43a5f3a63eecf3e3795d3ff0ae" + ], + "openbsd_arm64": [ + "go1.22.4.openbsd-arm64.tar.gz", + "a7ab8d4e0b02bf06ed144ba42c61c0e93ee00f2b433415dfd4ad4b6e79f31650" + ], + "openbsd_armv6l": [ + "go1.22.4.openbsd-arm.tar.gz", + "1096831ea3c5ea3ca57d14251d9eda3786889531eb40d7d6775dcaa324d4b065" + ], + "openbsd_ppc64": [ + "go1.22.4.openbsd-ppc64.tar.gz", + "9716327c8a628358798898dc5148c49dbbeb5196bf2cbf088e550721a6e4f60b" + ], + "plan9_386": [ + "go1.22.4.plan9-386.tar.gz", + "a8dd4503c95c32a502a616ab78870a19889c9325fe9bd31eb16dd69346e4bfa8" + ], + "plan9_amd64": [ + "go1.22.4.plan9-amd64.tar.gz", + "5423a25808d76fe5aca8607a2e5ac5673abf45446b168cb5e9d8519ee9fe39a1" + ], + "plan9_armv6l": [ + "go1.22.4.plan9-arm.tar.gz", + "6af939ad583f5c85c09c53728ab7d38c3cc2b39167562d6c18a07c5c6608b370" + ], + "solaris_amd64": [ + "go1.22.4.solaris-amd64.tar.gz", + "e8cabe69c03085725afdb32a6f9998191a3e55a747b270d835fd05000d56abba" + ], + "windows_386": [ + "go1.22.4.windows-386.zip", + "aca4e2c37278a10f1c70dd0df142f7d66b50334fcee48978d409202d308d6d25" + ], + "windows_amd64": [ + "go1.22.4.windows-amd64.zip", + "26321c4d945a0035d8a5bc4a1965b0df401ff8ceac66ce2daadabf9030419a98" + ], + "windows_arm64": [ + "go1.22.4.windows-arm64.zip", + "8a2daa9ea28cbdafddc6171aefed384f4e5b6e714fb52116fe9ed25a132f37ed" + ], + "windows_armv6l": [ + "go1.22.4.windows-arm.zip", + "5fcd0671a49cecf39b41021621ee1b6e7aa1370f37122b72e80d4fd4185833b6" + ] + }, + "1.23.0": { + "aix_ppc64": [ + "go1.23.0.aix-ppc64.tar.gz", + "257f8560bb4001fb81a5e0ee84f32fecbe18d4450343c9556557d296786847b6" + ], + "darwin_amd64": [ + "go1.23.0.darwin-amd64.tar.gz", + "ffd070acf59f054e8691b838f274d540572db0bd09654af851e4e76ab88403dc" + ], + "darwin_arm64": [ + "go1.23.0.darwin-arm64.tar.gz", + "b770812aef17d7b2ea406588e2b97689e9557aac7e646fe76218b216e2c51406" + ], + "dragonfly_amd64": [ + "go1.23.0.dragonfly-amd64.tar.gz", + "8fd2ab5ac8629fc97d25a056693e23f332446603dd3c2b764ccb496872004b0c" + ], + "freebsd_386": [ + "go1.23.0.freebsd-386.tar.gz", + "2c9b76ead3c44f5b3e40e10b980075addb837f2dd05dafe7c0e4c611fd239753" + ], + "freebsd_amd64": [ + "go1.23.0.freebsd-amd64.tar.gz", + "2c2252902b87ba605fdc0b12b4c860fe6553c0c5483c12cc471756ebdd8249fe" + ], + "freebsd_arm": [ + "go1.23.0.freebsd-arm.tar.gz", + "8ec48b8d99a515644ae00e79d093ad3b7645dcaf2a19c0a9c0d97916187f4514" + ], + "freebsd_arm64": [ + "go1.23.0.freebsd-arm64.tar.gz", + "f476bbe8efb0db18155671840545370bfb73903fec04ea897d510569dab16d9c" + ], + "freebsd_riscv64": [ + "go1.23.0.freebsd-riscv64.tar.gz", + "b0e254b2ea5752b4f1c69934ae43a44bbabf98e0c2843af44e1b6d12390eb551" + ], + "illumos_amd64": [ + "go1.23.0.illumos-amd64.tar.gz", + "09716dcc7a2e19891b3d1e2ea68a1aab22838fc664cdc5f82d5f8eef05db78cf" + ], + "linux_386": [ + "go1.23.0.linux-386.tar.gz", + "0e8a7340c2632e6fb5088d60f95b52be1f8303143e04cd34e9b2314fafc24edd" + ], + "linux_amd64": [ + "go1.23.0.linux-amd64.tar.gz", + "905a297f19ead44780548933e0ff1a1b86e8327bb459e92f9c0012569f76f5e3" + ], + "linux_arm64": [ + "go1.23.0.linux-arm64.tar.gz", + "62788056693009bcf7020eedc778cdd1781941c6145eab7688bd087bce0f8659" + ], + "linux_armv6l": [ + "go1.23.0.linux-armv6l.tar.gz", + "0efa1338e644d7f74064fa7f1016b5da7872b2df0070ea3b56e4fef63192e35b" + ], + "linux_loong64": [ + "go1.23.0.linux-loong64.tar.gz", + "dc8f723ce1a236e85c8b56d1e6749e270314e99dd41b80a58355e7ffcf9ea857" + ], + "linux_mips": [ + "go1.23.0.linux-mips.tar.gz", + "3332cc76c73c05b3413cdecccffc29aaa3469f87db8ed9f9b784ebb527ca5352" + ], + "linux_mips64": [ + "go1.23.0.linux-mips64.tar.gz", + "0ed5cee92433d09fd0816ec5adfbf4b16d712944e833f6342bbe2df18f7826ae" + ], + "linux_mips64le": [ + "go1.23.0.linux-mips64le.tar.gz", + "06a579dd6d1f9a84bc43cab063e7c759a92a6d4dd01fec3d860f22a32df93406" + ], + "linux_mipsle": [ + "go1.23.0.linux-mipsle.tar.gz", + "d522770d32d6ee963f61331a695c4f8a730f2445b965d8d56db0a2e75c62af57" + ], + "linux_ppc64": [ + "go1.23.0.linux-ppc64.tar.gz", + "8c884cb4f2593d897f58ec1b0f23f303acf5c78fd101e76cb48d6cb1fe5e90e7" + ], + "linux_ppc64le": [ + "go1.23.0.linux-ppc64le.tar.gz", + "8b26e20d4d43a4d7641cddbdc0298d7ba3804d910a9e06cda7672970dbf2829d" + ], + "linux_riscv64": [ + "go1.23.0.linux-riscv64.tar.gz", + "a87726205f1a283247f877ccae8ce147ff4e77ac802382647ac52256eb5642c7" + ], + "linux_s390x": [ + "go1.23.0.linux-s390x.tar.gz", + "003722971de02d97131a4dca2496abdab5cb175a6ee0ed9c8227c5ae9b883e69" + ], + "netbsd_386": [ + "go1.23.0.netbsd-386.tar.gz", + "b203fa2354874c66c40d828e96a6cce1f4e4db192414050a600d0a09b16cafd3" + ], + "netbsd_amd64": [ + "go1.23.0.netbsd-amd64.tar.gz", + "1502c82c3ba663959df99c2cc3ca5e7a5e1a75a1495fd26bef697d63bf1f291c" + ], + "netbsd_arm": [ + "go1.23.0.netbsd-arm.tar.gz", + "dd50c05c7f613522c8d3d74f598bfc1862c0fee9182b738225820c9b458c7be5" + ], + "netbsd_arm64": [ + "go1.23.0.netbsd-arm64.tar.gz", + "728a94a648f9502cd6175adaac2b770acde6b26f5f92dcbd8c5a1a43cc44bb10" + ], + "openbsd_386": [ + "go1.23.0.openbsd-386.tar.gz", + "e1ff3584778257778a4e3f0093b09044072423aebedf2015a550537853c46745" + ], + "openbsd_amd64": [ + "go1.23.0.openbsd-amd64.tar.gz", + "d2e30cdb0de256360b51a43f5e551587a7369d8c248120010d5e9432f698a6e8" + ], + "openbsd_arm": [ + "go1.23.0.openbsd-arm.tar.gz", + "bd5224c8a5f195f4128c866c0d418f1b61db865a1042913fd07714ed85da28db" + ], + "openbsd_arm64": [ + "go1.23.0.openbsd-arm64.tar.gz", + "fc0e0af3a1b4b7168455e8492a5bb6aa96ceaf46321cef1fc04187301c058890" + ], + "openbsd_ppc64": [ + "go1.23.0.openbsd-ppc64.tar.gz", + "ce7ea9343c7c2ef2700b55b80c45549ce39d164031e4d7bb98bec7ca593ed93d" + ], + "openbsd_riscv64": [ + "go1.23.0.openbsd-riscv64.tar.gz", + "90b6a97285981e06752a30a638cd8d32861086848c0131fb62faddf89e2de8e1" + ], + "plan9_386": [ + "go1.23.0.plan9-386.tar.gz", + "93b970a8a41f6c89113daaea12e39f2580038af155e823550d0a94a5502c5e2c" + ], + "plan9_amd64": [ + "go1.23.0.plan9-amd64.tar.gz", + "6231862acbb6c1e02b1455b35446b9789b0b4b3230d249953e6957c393a53011" + ], + "plan9_arm": [ + "go1.23.0.plan9-arm.tar.gz", + "632bdd3a1f84b2fe691203423dd2c3f536d4ab250bb52a48e9b05ebf327ae594" + ], + "solaris_amd64": [ + "go1.23.0.solaris-amd64.tar.gz", + "16773f85003d9e610960f9af67e00bc6c02359d7914de7224079538cc9c1e93d" + ], + "windows_386": [ + "go1.23.0.windows-386.zip", + "09448fedec0cdf98ad12397222e0c8bfc835b1d0894c0015ced653534b8d7427" + ], + "windows_amd64": [ + "go1.23.0.windows-amd64.zip", + "d4be481ef73079ee0ad46081d278923aa3fd78db1b3cf147172592f73e14c1ac" + ], + "windows_arm": [ + "go1.23.0.windows-arm.zip", + "006d93712246a672bdb57906dd5bffcab62facc36169e51a27d52340cdac661f" + ], + "windows_arm64": [ + "go1.23.0.windows-arm64.zip", + "0be62073ef8f5a2d3b9adcefddf18c417dab0a7975c71488ac2694856e2ff976" + ] + }, + "1.24.0": { + "aix_ppc64": [ + "go1.24.0.aix-ppc64.tar.gz", + "5d04588154d5923bd8e26b76111806340ec55c41af1b05623ea744fcb3d6bc22" + ], + "darwin_amd64": [ + "go1.24.0.darwin-amd64.tar.gz", + "7af054e5088b68c24b3d6e135e5ca8d91bbd5a05cb7f7f0187367b3e6e9e05ee" + ], + "darwin_arm64": [ + "go1.24.0.darwin-arm64.tar.gz", + "fd9cfb5dd6c75a347cfc641a253f0db1cebaca16b0dd37965351c6184ba595e4" + ], + "dragonfly_amd64": [ + "go1.24.0.dragonfly-amd64.tar.gz", + "d0dc34ad86aea746abe245994c68a9e1ad8f46ba8c4af901cd5861a4dd4c21df" + ], + "freebsd_386": [ + "go1.24.0.freebsd-386.tar.gz", + "4ee02b1f3812aff4da79c79464ee4038ca61ad74b3a9619850f30435f81c2536" + ], + "freebsd_amd64": [ + "go1.24.0.freebsd-amd64.tar.gz", + "838191001f9324da904dece35a586a3156d548687db87ac9461aa3d38fc88b09" + ], + "freebsd_arm": [ + "go1.24.0.freebsd-arm.tar.gz", + "ce6ad4e84a40a8a1d848b7e31b0cddfd1cee8f7959e7dc358a8fa8b5566ea718" + ], + "freebsd_arm64": [ + "go1.24.0.freebsd-arm64.tar.gz", + "511f7b0cac4c4ed1066d324072ce223b906ad6b2a85f2e1c5d260eb7d08b5901" + ], + "freebsd_riscv64": [ + "go1.24.0.freebsd-riscv64.tar.gz", + "a1e4072630dc589a2975ef51317b52c7d8599bf6f389fc59033c01e0a0fa705a" + ], + "illumos_amd64": [ + "go1.24.0.illumos-amd64.tar.gz", + "7593e9dcee9f07c3df6d099f7d259f5734a6c0dccc5f28962f18e7f501c9bb21" + ], + "linux_386": [ + "go1.24.0.linux-386.tar.gz", + "90521453a59c6ce20364d2dc7c38532949b033b602ba12d782caeb90af1b0624" + ], + "linux_amd64": [ + "go1.24.0.linux-amd64.tar.gz", + "dea9ca38a0b852a74e81c26134671af7c0fbe65d81b0dc1c5bfe22cf7d4c8858" + ], + "linux_arm64": [ + "go1.24.0.linux-arm64.tar.gz", + "c3fa6d16ffa261091a5617145553c71d21435ce547e44cc6dfb7470865527cc7" + ], + "linux_armv6l": [ + "go1.24.0.linux-armv6l.tar.gz", + "695dc54fa14cd3124fa6900d7b5ae39eeac23f7a4ecea81656070160fac2c54a" + ], + "linux_loong64": [ + "go1.24.0.linux-loong64.tar.gz", + "a201e4c9b7e6d29ed64c43296ed88e81a66f82f2093ce45b766d2c526941396f" + ], + "linux_mips": [ + "go1.24.0.linux-mips.tar.gz", + "f3ac039aae78ad0bfb08106406c2e62eaf763dd82ebaf0ecd539adadd1d729a6" + ], + "linux_mips64": [ + "go1.24.0.linux-mips64.tar.gz", + "f2e6456d45e024831b1da8d88b1bb6392cca9500c1b00841f525d76c9e9553e0" + ], + "linux_mips64le": [ + "go1.24.0.linux-mips64le.tar.gz", + "b847893ff119389c939adc2b8516b6500204b7cb49d5e19b25e1c2091d2c74c6" + ], + "linux_mipsle": [ + "go1.24.0.linux-mipsle.tar.gz", + "bd4aed27d02746c237c3921e97029ac6b6fe687a67436b8f52ff1f698d330bd9" + ], + "linux_ppc64": [ + "go1.24.0.linux-ppc64.tar.gz", + "007123c9b06c41729a4bb3f166f4df7196adf4e33c2d2ab0e7e990175f0ce1d4" + ], + "linux_ppc64le": [ + "go1.24.0.linux-ppc64le.tar.gz", + "a871a43de7d26c91dd90cb6e0adacb214c9e35ee2188c617c91c08c017efe81a" + ], + "linux_riscv64": [ + "go1.24.0.linux-riscv64.tar.gz", + "620dcf48c6297519aad6c81f8e344926dc0ab09a2a79f1e306964aece95a553d" + ], + "linux_s390x": [ + "go1.24.0.linux-s390x.tar.gz", + "544d78b077c6b54bf78958c4a8285abec2d21f668fb007261c77418cd2edbb46" + ], + "netbsd_386": [ + "go1.24.0.netbsd-386.tar.gz", + "8b143a7edefbaa2a0b0246c9df2df1bac9fbed909d8615a375c08da7744e697d" + ], + "netbsd_amd64": [ + "go1.24.0.netbsd-amd64.tar.gz", + "67150a6dd7bdb9c4e88d77f46ee8c4dc99d5e71deca4912d8c2c85f7a16d0262" + ], + "netbsd_arm": [ + "go1.24.0.netbsd-arm.tar.gz", + "446b2539f11218fd6f6f6e3dd90b20ae55a06afe129885eeb3df51eb344eb0f6" + ], + "netbsd_arm64": [ + "go1.24.0.netbsd-arm64.tar.gz", + "370115b6ff7d30b29431223de348eb11ab65e3c92627532d97fd55f63f94e7a8" + ], + "openbsd_386": [ + "go1.24.0.openbsd-386.tar.gz", + "cbda5f15f06ed9630f122a53542d9de13d149643633c74f1dcb45e79649b788a" + ], + "openbsd_amd64": [ + "go1.24.0.openbsd-amd64.tar.gz", + "926f601d0e655ab1e8d7f357fd82542e5cf206c38c4e2f9fccf0706987d38836" + ], + "openbsd_arm": [ + "go1.24.0.openbsd-arm.tar.gz", + "8a54892f8c933c541fff144a825d0fdc41bae14b0832aab703cb75eb4cb64f2c" + ], + "openbsd_arm64": [ + "go1.24.0.openbsd-arm64.tar.gz", + "ef7fddcef0a22c7900c178b7687cf5aa25c2a9d46a3cc330b77a6de6e6c2396b" + ], + "openbsd_ppc64": [ + "go1.24.0.openbsd-ppc64.tar.gz", + "b3b5e2e2b53489ded2c2c21900ddcbbdb7991632bb5b42f05f125d71675e0b76" + ], + "openbsd_riscv64": [ + "go1.24.0.openbsd-riscv64.tar.gz", + "fbcb1dbf1269b4079dc4fd0b15f3274b9d635f1a7e319c3fc1a907b03280348e" + ], + "plan9_386": [ + "go1.24.0.plan9-386.tar.gz", + "33b4221e1c174a16e3f661deab6c60838ac4ae6cb869a4da1d1115773ceed88b" + ], + "plan9_amd64": [ + "go1.24.0.plan9-amd64.tar.gz", + "111a89014019cdbd69c2978de9b3e201f77e35183c8ab3606fba339d38f28549" + ], + "plan9_arm": [ + "go1.24.0.plan9-arm.tar.gz", + "8da3d3997049f40ebe0cd336a9bb9e4bfa4832df3c90a32f07383371d6d74849" + ], + "solaris_amd64": [ + "go1.24.0.solaris-amd64.tar.gz", + "b6069da21dc95ccdbd047675b584e5480ffc3eba35f9e7c8b0e7b317aaf01e2c" + ], + "windows_386": [ + "go1.24.0.windows-386.zip", + "b53c28a4c2863ec50ab4a1dbebe818ef6177f86773b6f43475d40a5d9aa4ec9e" + ], + "windows_amd64": [ + "go1.24.0.windows-amd64.zip", + "96b7280979205813759ee6947be7e3bb497da85c482711116c00522e3bb41ff1" + ], + "windows_arm64": [ + "go1.24.0.windows-arm64.zip", + "53f73450fb66075d16be9f206e9177bd972b528168271918c4747903b5596c3d" + ] + }, + "1.24.6": { + "aix_ppc64": [ + "go1.24.6.aix-ppc64.tar.gz", + "5cafb2927af95969fc3d0884be1ad4df54f19103d86dda928d9f76494a5ae6a6" + ], + "darwin_amd64": [ + "go1.24.6.darwin-amd64.tar.gz", + "4a8d7a32052f223e71faab424a69430455b27b3fff5f4e651f9d97c3e51a8746" + ], + "darwin_arm64": [ + "go1.24.6.darwin-arm64.tar.gz", + "4e29202c49573b953be7cc3500e1f8d9e66ddd12faa8cf0939a4951411e09a2a" + ], + "dragonfly_amd64": [ + "go1.24.6.dragonfly-amd64.tar.gz", + "c6e21bf8347f7a1c653dd4136c8c27a858515e98501d2843023a4bb3f1f7fb63" + ], + "freebsd_386": [ + "go1.24.6.freebsd-386.tar.gz", + "9cd74ad74f3ad833e92529f2fd9b0d7d9ffaab46307eccadb0afcf9a1ba09553" + ], + "freebsd_amd64": [ + "go1.24.6.freebsd-amd64.tar.gz", + "4983e2b10ae1f754e4eb07e1e589691c7e1d0dc428a92c16bd0e2ba03cc23ed9" + ], + "freebsd_arm": [ + "go1.24.6.freebsd-arm.tar.gz", + "a8da621d8282a91ee17b257a46f2606391c019cc1a7d7be628638792ca8033ad" + ], + "freebsd_arm64": [ + "go1.24.6.freebsd-arm64.tar.gz", + "76a75ad5125217c268029c0ad9c7295cc7f6042fe9cba4bebf9a89f7f42ad8af" + ], + "freebsd_riscv64": [ + "go1.24.6.freebsd-riscv64.tar.gz", + "ac206417d8460662f26d46dc2ad0488b2f9e22039946069ba4b48a0cb646e8b0" + ], + "illumos_amd64": [ + "go1.24.6.illumos-amd64.tar.gz", + "c54199c46ec823c857c52335f859b493593433d71fe479b9e7f95d868a144ae2" + ], + "linux_386": [ + "go1.24.6.linux-386.tar.gz", + "bb5bf69d75e7edbc93339824753a1a4655a928451a2c5e13ff90959ad69e065b" + ], + "linux_amd64": [ + "go1.24.6.linux-amd64.tar.gz", + "bbca37cc395c974ffa4893ee35819ad23ebb27426df87af92e93a9ec66ef8712" + ], + "linux_arm64": [ + "go1.24.6.linux-arm64.tar.gz", + "124ea6033a8bf98aa9fbab53e58d134905262d45a022af3a90b73320f3c3afd5" + ], + "linux_armv6l": [ + "go1.24.6.linux-armv6l.tar.gz", + "7feb4d25f5e72f94fda81c99d4adb6630dfa2c35211e0819417d53af6e71809e" + ], + "linux_loong64": [ + "go1.24.6.linux-loong64.tar.gz", + "8424d9c52b254255d2720769366af73802747e4eaf339c6e86bb52e5a1809fcb" + ], + "linux_mips": [ + "go1.24.6.linux-mips.tar.gz", + "791964a6ce65f604a2099b7e61f71128cc7a3a4fcee858218d2ce99033fc2b09" + ], + "linux_mips64": [ + "go1.24.6.linux-mips64.tar.gz", + "2f5282fdf2eaca44515728d518caec888b0dc4948effecb8e7f2ddff1ff9aa9e" + ], + "linux_mips64le": [ + "go1.24.6.linux-mips64le.tar.gz", + "64ddc6b28907b4ab997f2d81c226be403511a59a6100536560af26ccfb10b4a4" + ], + "linux_mipsle": [ + "go1.24.6.linux-mipsle.tar.gz", + "5ca12d2d4939dea977100e76885f4e08cd3ef3b73823853527b58ecac4598fd3" + ], + "linux_ppc64": [ + "go1.24.6.linux-ppc64.tar.gz", + "9a4a61ffbba7a58b3ef97a6d3b2b394168f613f9ca6092016981a88c78a57f86" + ], + "linux_ppc64le": [ + "go1.24.6.linux-ppc64le.tar.gz", + "63fc9559a3d6dfd63aa902f714375b879bbc848466181c035c122489b9646e27" + ], + "linux_riscv64": [ + "go1.24.6.linux-riscv64.tar.gz", + "e92c19ff15a9004fe43e1f62d433555250ef9fe3fabee3dc29ebd4802c2b8021" + ], + "linux_s390x": [ + "go1.24.6.linux-s390x.tar.gz", + "4cde28d9ffb6eef86bf8dac6852a45db335009f67e60bee3e477dd0ba0ff9704" + ], + "netbsd_386": [ + "go1.24.6.netbsd-386.tar.gz", + "d238045676104d2aaad9da53c4ba3f489cf81b26d3315d2caad2b6e240664423" + ], + "netbsd_amd64": [ + "go1.24.6.netbsd-amd64.tar.gz", + "9f8a9245cf146f1ebdac6785f71646c3dd0edf07dcdb8e5a8df85ec6447e5308" + ], + "netbsd_arm": [ + "go1.24.6.netbsd-arm.tar.gz", + "2359c8af6b2d6979910060478a57fd216824682e0908ea1a4412ea8dc4a55db7" + ], + "netbsd_arm64": [ + "go1.24.6.netbsd-arm64.tar.gz", + "99101158c796997ec85023d395c133fa90c782bd5faa56f8c3824817d28b0ee8" + ], + "openbsd_386": [ + "go1.24.6.openbsd-386.tar.gz", + "b6193420489f24d5560b87ccb38caf52cecb308d892d99bf21d1ef0d2c99de04" + ], + "openbsd_amd64": [ + "go1.24.6.openbsd-amd64.tar.gz", + "8dc0d94afbc65be9cafebe543b88a841dcf3429e50f668ea714200ef9f4489bd" + ], + "openbsd_arm": [ + "go1.24.6.openbsd-arm.tar.gz", + "c29563d14d8e4b5fa89f130afac40abba7a1ee1e87fcc759a95f1e9b5831bf68" + ], + "openbsd_arm64": [ + "go1.24.6.openbsd-arm64.tar.gz", + "3d97bdc5e1997cccfaa398242c52e8a97d3b626d988a65248bbdbf2f1ab188bf" + ], + "openbsd_ppc64": [ + "go1.24.6.openbsd-ppc64.tar.gz", + "54cf517933db0bff58f3e527e7fa194f505d562c71b1fb0050d3365fcdda4914" + ], + "openbsd_riscv64": [ + "go1.24.6.openbsd-riscv64.tar.gz", + "f7bdd8f882ecbc01ff6c1782ce3e29298445dd99b3dd4299423257df307c7b0d" + ], + "plan9_386": [ + "go1.24.6.plan9-386.tar.gz", + "9bc0a801dc0d8d0705ac9493219b926b2e3c0105b8921c6c2fce69d14c4b9007" + ], + "plan9_amd64": [ + "go1.24.6.plan9-amd64.tar.gz", + "7133c28acc277d3c5e8317fd9454b3a0902138c384466f818644b504b8b89ffe" + ], + "plan9_arm": [ + "go1.24.6.plan9-arm.tar.gz", + "c4e2aa8aa4353f75fc083ca728b73917467cef88c6f5f917ca420578672c6d58" + ], + "solaris_amd64": [ + "go1.24.6.solaris-amd64.tar.gz", + "cfcb4f1f7e987c6dee893c4401546516cc271c1ac7d7fb37a32b25343dc7df32" + ], + "windows_386": [ + "go1.24.6.windows-386.zip", + "39b4d31b933d2f7c8913e70fb0fffef27252e441c386eac5c13632cbb28dfb6e" + ], + "windows_amd64": [ + "go1.24.6.windows-amd64.zip", + "4fbc8af2cfca9e5059019b5150a426eb78e1e57718bf08f0e52b1c942a2782bf" + ], + "windows_arm64": [ + "go1.24.6.windows-arm64.zip", + "45c41b237d00e92e4cf8adce11b4c5258048b47a92bfbb1f4ef3b928d6fcb0b2" + ] + }, + "1.25.0": { + "aix_ppc64": [ + "go1.25.0.aix-ppc64.tar.gz", + "e5234a7dac67bc86c528fe9752fc9d63557918627707a733ab4cac1a6faed2d4" + ], + "darwin_amd64": [ + "go1.25.0.darwin-amd64.tar.gz", + "5bd60e823037062c2307c71e8111809865116714d6f6b410597cf5075dfd80ef" + ], + "darwin_arm64": [ + "go1.25.0.darwin-arm64.tar.gz", + "544932844156d8172f7a28f77f2ac9c15a23046698b6243f633b0a0b00c0749c" + ], + "dragonfly_amd64": [ + "go1.25.0.dragonfly-amd64.tar.gz", + "5ed3cf9a810a1483822538674f1336c06b51aa1b94d6d545a1a0319a48177120" + ], + "freebsd_386": [ + "go1.25.0.freebsd-386.tar.gz", + "abea5d5c6697e6b5c224731f2158fe87c602996a2a233ac0c4730cd57bf8374e" + ], + "freebsd_amd64": [ + "go1.25.0.freebsd-amd64.tar.gz", + "86e6fe0a29698d7601c4442052dac48bd58d532c51cccb8f1917df648138730b" + ], + "freebsd_arm": [ + "go1.25.0.freebsd-arm.tar.gz", + "d90b78e41921f72f30e8bbc81d9dec2cff7ff384a33d8d8debb24053e4336bfe" + ], + "freebsd_arm64": [ + "go1.25.0.freebsd-arm64.tar.gz", + "451d0da1affd886bfb291b7c63a6018527b269505db21ce6e14724f22ab0662e" + ], + "freebsd_riscv64": [ + "go1.25.0.freebsd-riscv64.tar.gz", + "7b565f76bd8bda46549eeaaefe0e53b251e644c230577290c0f66b1ecdb3cdbe" + ], + "illumos_amd64": [ + "go1.25.0.illumos-amd64.tar.gz", + "b1e1fdaab1ad25aa1c08d7a36c97d45d74b98b89c3f78c6d2145f77face54a2c" + ], + "linux_386": [ + "go1.25.0.linux-386.tar.gz", + "8c602dd9d99bc9453b3995d20ce4baf382cc50855900a0ece5de9929df4a993a" + ], + "linux_amd64": [ + "go1.25.0.linux-amd64.tar.gz", + "2852af0cb20a13139b3448992e69b868e50ed0f8a1e5940ee1de9e19a123b613" + ], + "linux_arm64": [ + "go1.25.0.linux-arm64.tar.gz", + "05de75d6994a2783699815ee553bd5a9327d8b79991de36e38b66862782f54ae" + ], + "linux_armv6l": [ + "go1.25.0.linux-armv6l.tar.gz", + "a5a8f8198fcf00e1e485b8ecef9ee020778bf32a408a4e8873371bfce458cd09" + ], + "linux_loong64": [ + "go1.25.0.linux-loong64.tar.gz", + "cab86b1cf761b1cb3bac86a8877cfc92e7b036fc0d3084123d77013d61432afc" + ], + "linux_mips": [ + "go1.25.0.linux-mips.tar.gz", + "d66b6fb74c3d91b9829dc95ec10ca1f047ef5e89332152f92e136cf0e2da5be1" + ], + "linux_mips64": [ + "go1.25.0.linux-mips64.tar.gz", + "4082e4381a8661bc2a839ff94ba3daf4f6cde20f8fb771b5b3d4762dc84198a2" + ], + "linux_mips64le": [ + "go1.25.0.linux-mips64le.tar.gz", + "70002c299ec7f7175ac2ef673b1b347eecfa54ae11f34416a6053c17f855afcc" + ], + "linux_mipsle": [ + "go1.25.0.linux-mipsle.tar.gz", + "b00a3a39eff099f6df9f1c7355bf28e4589d0586f42d7d4a394efb763d145a73" + ], + "linux_ppc64": [ + "go1.25.0.linux-ppc64.tar.gz", + "df166f33bd98160662560a72ff0b4ba731f969a80f088922bddcf566a88c1ec1" + ], + "linux_ppc64le": [ + "go1.25.0.linux-ppc64le.tar.gz", + "0f18a89e7576cf2c5fa0b487a1635d9bcbf843df5f110e9982c64df52a983ad0" + ], + "linux_riscv64": [ + "go1.25.0.linux-riscv64.tar.gz", + "c018ff74a2c48d55c8ca9b07c8e24163558ffec8bea08b326d6336905d956b67" + ], + "linux_s390x": [ + "go1.25.0.linux-s390x.tar.gz", + "34e5a2e19f2292fbaf8783e3a241e6e49689276aef6510a8060ea5ef54eee408" + ], + "netbsd_386": [ + "go1.25.0.netbsd-386.tar.gz", + "f8586cdb7aa855657609a5c5f6dbf523efa00c2bbd7c76d3936bec80aa6c0aba" + ], + "netbsd_amd64": [ + "go1.25.0.netbsd-amd64.tar.gz", + "ae8dc1469385b86a157a423bb56304ba45730de8a897615874f57dd096db2c2a" + ], + "netbsd_arm": [ + "go1.25.0.netbsd-arm.tar.gz", + "1ff7e4cc764425fc9dd6825eaee79d02b3c7cafffbb3691687c8d672ade76cb7" + ], + "netbsd_arm64": [ + "go1.25.0.netbsd-arm64.tar.gz", + "e1b310739f26724216aa6d7d7208c4031f9ff54c9b5b9a796ddc8bebcb4a5f16" + ], + "openbsd_386": [ + "go1.25.0.openbsd-386.tar.gz", + "4802a9b20e533da91adb84aab42e94aa56cfe3e5475d0550bed3385b182e69d8" + ], + "openbsd_amd64": [ + "go1.25.0.openbsd-amd64.tar.gz", + "c016cd984bebe317b19a4f297c4f50def120dc9788490540c89f28e42f1dabe1" + ], + "openbsd_arm": [ + "go1.25.0.openbsd-arm.tar.gz", + "a1e31d0bf22172ddde42edf5ec811ef81be43433df0948ece52fecb247ccfd8d" + ], + "openbsd_arm64": [ + "go1.25.0.openbsd-arm64.tar.gz", + "343ea8edd8c218196e15a859c6072d0dd3246fbbb168481ab665eb4c4140458d" + ], + "openbsd_ppc64": [ + "go1.25.0.openbsd-ppc64.tar.gz", + "694c14da1bcaeb5e3332d49bdc2b6d155067648f8fe1540c5de8f3cf8e157154" + ], + "openbsd_riscv64": [ + "go1.25.0.openbsd-riscv64.tar.gz", + "aa510ad25cf54c06cd9c70b6d80ded69cb20188ac6e1735655eef29ff7e7885f" + ], + "plan9_386": [ + "go1.25.0.plan9-386.tar.gz", + "46f8cef02086cf04bf186c5912776b56535178d4cb319cd19c9fdbdd29231986" + ], + "plan9_amd64": [ + "go1.25.0.plan9-amd64.tar.gz", + "29b34391d84095e44608a228f63f2f88113a37b74a79781353ec043dfbcb427b" + ], + "plan9_arm": [ + "go1.25.0.plan9-arm.tar.gz", + "0a047107d13ebe7943aaa6d54b1d7bbd2e45e68ce449b52915a818da715799c2" + ], + "solaris_amd64": [ + "go1.25.0.solaris-amd64.tar.gz", + "9977f9e4351984364a3b2b78f8b88bfd1d339812356d5237678514594b7d3611" + ], + "windows_386": [ + "go1.25.0.windows-386.zip", + "df9f39db82a803af0db639e3613a36681ab7a42866b1384b3f3a1045663961a7" + ], + "windows_amd64": [ + "go1.25.0.windows-amd64.zip", + "89efb4f9b30812eee083cc1770fdd2913c14d301064f6454851428f9707d190b" + ], + "windows_arm64": [ + "go1.25.0.windows-arm64.zip", + "27bab004c72b3d7bd05a69b6ec0fc54a309b4b78cc569dd963d8b3ec28bfdb8c" + ] + }, + "1.26.4": { + "aix_ppc64": [ + "go1.26.4.aix-ppc64.tar.gz", + "881bf44c07203fc1759d477412c2dfae425e5d2023acdd79299d5de5b4de8e77" + ], + "darwin_amd64": [ + "go1.26.4.darwin-amd64.tar.gz", + "05dc9b5f9997744520aaebb3d5deaa7c755371aebbfb7f97c2511a9f3367538d" + ], + "darwin_arm64": [ + "go1.26.4.darwin-arm64.tar.gz", + "b62ad2b6d7d2464f12a5bcad7ff47f19d08325773b5efd21610e445a05a9bf53" + ], + "dragonfly_amd64": [ + "go1.26.4.dragonfly-amd64.tar.gz", + "bcc3ee1cfb6dd03a2d5abf07174212df1764ae54406c389b71a7fd2d05a8f0c8" + ], + "freebsd_386": [ + "go1.26.4.freebsd-386.tar.gz", + "f4325e0f9a5894e79c60b5e692af55a1e6f261b8ea73dcd20eced8372ad08233" + ], + "freebsd_amd64": [ + "go1.26.4.freebsd-amd64.tar.gz", + "e91e96c0d3bd8f770e5a0facaf21d010a84e1c9440d830210cb3c223f0b7fb50" + ], + "freebsd_arm": [ + "go1.26.4.freebsd-arm.tar.gz", + "36e45b3a843087f0f95a71f2ed453ea7e1727e684644d13f8b4c6c93fd977d41" + ], + "freebsd_arm64": [ + "go1.26.4.freebsd-arm64.tar.gz", + "34aee1071d74cc23703d1b415c5fa44f840d29fd3733dac34944d83cfada3ff3" + ], + "illumos_amd64": [ + "go1.26.4.illumos-amd64.tar.gz", + "27603bcd431afab272a5ed81cc951146181e8139640c46ed2ea5b560e1097038" + ], + "linux_386": [ + "go1.26.4.linux-386.tar.gz", + "5ca0982791791559d11a0eba939617a94c3f37c21aa514a55c415b9167efc658" + ], + "linux_amd64": [ + "go1.26.4.linux-amd64.tar.gz", + "1153d3d50e0ac764b447adfe05c2bcf08e889d42a02e0fe0259bd47f6733ad7f" + ], + "linux_arm64": [ + "go1.26.4.linux-arm64.tar.gz", + "ef758ae7c6cf9267c9c0ef080b8965f453d89ab2d25d9eb22de4405925238768" + ], + "linux_armv6l": [ + "go1.26.4.linux-armv6l.tar.gz", + "8db458e995f18a9427a745cefe7a3323962fa2548c4715148963311f300d3b1a" + ], + "linux_loong64": [ + "go1.26.4.linux-loong64.tar.gz", + "9f6d288d8972dd649ff3ecfdd3ed98e0664b5efb432e841408c054c25af26ed3" + ], + "linux_mips": [ + "go1.26.4.linux-mips.tar.gz", + "3435d0d8424562dfcf12517040b6a2388ee0f6f20b9d66b2349a6c5034d57997" + ], + "linux_mips64": [ + "go1.26.4.linux-mips64.tar.gz", + "691263ab84943aff78d1422dfae66f352d907fc67560e66e7ceec3898fb7d5e6" + ], + "linux_mips64le": [ + "go1.26.4.linux-mips64le.tar.gz", + "23946b019b118ed85676090fd9110cfa091667c8c52d3d5276b73f3dd46d31f4" + ], + "linux_mipsle": [ + "go1.26.4.linux-mipsle.tar.gz", + "4436df043e2a448f8937d1f944a3cd786d815c872fdce38dd892269845c1c54f" + ], + "linux_ppc64": [ + "go1.26.4.linux-ppc64.tar.gz", + "d7c3970c1818d63b7b3473a01b9f5f208da1e793a902d3b2e26d5e5174eb6026" + ], + "linux_ppc64le": [ + "go1.26.4.linux-ppc64le.tar.gz", + "53f49b8c7eace2d30389327b4a516b13321f90377fdf5929a6b63174609bc22e" + ], + "linux_riscv64": [ + "go1.26.4.linux-riscv64.tar.gz", + "2b9ba137baaa3031fd74330cb36ab54c5abe380867ca9fbab7c552f3db740555" + ], + "linux_s390x": [ + "go1.26.4.linux-s390x.tar.gz", + "1e12a2318f3dd4c57027c865f6cb51f5d1e36b02d10f3e6316ce7b61a27b3ca1" + ], + "netbsd_386": [ + "go1.26.4.netbsd-386.tar.gz", + "67a172e4780d1b2a5412b73e86798937f2eb2f85aba6d740df4fbe6d6b555fa2" + ], + "netbsd_amd64": [ + "go1.26.4.netbsd-amd64.tar.gz", + "3321f16e91c7d6d9c8df556690fbe8aef028aac9a0d6d466af9d3c20bd599503" + ], + "netbsd_arm": [ + "go1.26.4.netbsd-arm.tar.gz", + "a3830f9f0f9fb00648346508d4d2c6fa2d7c1cd4c478fb88051ff6f1b49f0610" + ], + "netbsd_arm64": [ + "go1.26.4.netbsd-arm64.tar.gz", + "f240a98583a12f16cd6ea4799d29e5ccdc96892314263c0065e6511c783e26ab" + ], + "openbsd_386": [ + "go1.26.4.openbsd-386.tar.gz", + "c0c892180ebc9038637f158a010bdc2d962d303d9c0346ae5856fcd2088b16c7" + ], + "openbsd_amd64": [ + "go1.26.4.openbsd-amd64.tar.gz", + "cd33f8f7f103cc9151d69795a7f20482335a88cf4eb76a3c56c12afbb5b1b2f0" + ], + "openbsd_arm": [ + "go1.26.4.openbsd-arm.tar.gz", + "5ab1a54a1dc4f425006101b81c12cd88a457b22496add2bb8b6f6e73b58cf1f1" + ], + "openbsd_arm64": [ + "go1.26.4.openbsd-arm64.tar.gz", + "cf8b0f5d6a043771df53fe70054d2b2b792f4c7693ad6cd5a891c252d813bc33" + ], + "openbsd_ppc64": [ + "go1.26.4.openbsd-ppc64.tar.gz", + "dcf7c6962c43ff67a0d804b989589fe4f3fd574c92b932659c95b1bb32c66f82" + ], + "openbsd_riscv64": [ + "go1.26.4.openbsd-riscv64.tar.gz", + "e6ba2daf626770f7d453e7974058dee4b85cb198613ecbb97048a730dc1d5497" + ], + "plan9_386": [ + "go1.26.4.plan9-386.tar.gz", + "003b912f269786612ad01088178ffcb6f03421fdd61cc4d8b71922571aabd09a" + ], + "plan9_amd64": [ + "go1.26.4.plan9-amd64.tar.gz", + "663871da0f2263d6553828e695be5346f816015f1a6fe7ead22db538ebb6b293" + ], + "plan9_arm": [ + "go1.26.4.plan9-arm.tar.gz", + "9b350fc94bb0c17fe30604e41c7573a9a70bbab258646f0e262a4c6851e4d2b8" + ], + "solaris_amd64": [ + "go1.26.4.solaris-amd64.tar.gz", + "92eb3f7e224e5dd7ac9e0fb9455f8619c3999faf1e350a9505bb2ed5f7e41b7e" + ], + "windows_386": [ + "go1.26.4.windows-386.zip", + "2064a4a249fd2ee2db23e7080dc19b42768969f2830541841d0f7a9c80996946" + ], + "windows_amd64": [ + "go1.26.4.windows-amd64.zip", + "3ca8fb4630b07c419cbdd51f754e31363cfcfb83b3a5354d9e895c90be2cc345" + ], + "windows_arm64": [ + "go1.26.4.windows-arm64.zip", + "62247f56fb7d7b827d237152c4e3fcd69a24d0fa9430dc73dbda7593ae82bc8d" + ] + } + }, + "@@rules_python+//python/extensions:pip.bzl%pip": { + "dist_hashes": { + "https://pypi.org/simple": { + "absl-py": { + "https://files.pythonhosted.org/packages/7a/8f/fc001b92ecc467cc32ab38398bd0bfb45df46e7523bf33c2ad22a505f06e/absl-py-2.1.0.tar.gz": "7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff", + "https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl": "526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308" + }, + "astunparse": { + "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl": "c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", + "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz": "5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872" + }, + "attrs": { + "https://files.pythonhosted.org/packages/49/7c/fdf464bcc51d23881d110abd74b512a42b3d5d376a55a831b44c603ae17f/attrs-25.1.0.tar.gz": "1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e", + "https://files.pythonhosted.org/packages/fc/30/d4986a882011f9df997a55e6becd864812ccfcd821d64aac8570ee39f719/attrs-25.1.0-py3-none-any.whl": "c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a" + }, + "automat": { + "https://files.pythonhosted.org/packages/8d/2d/ede4ad7fc34ab4482389fa3369d304f2fa22e50770af706678f6a332fa82/automat-24.8.1.tar.gz": "b34227cf63f6325b8ad2399ede780675083e439b20c323d376373d8ee6306d88", + "https://files.pythonhosted.org/packages/af/cc/55a32a2c98022d88812b5986d2a92c4ff3ee087e83b712ebc703bba452bf/Automat-24.8.1-py3-none-any.whl": "bf029a7bc3da1e2c24da2343e7598affaa9f10bf0ab63ff808566ce90551e02a" + }, + "backports-tarfile": { + "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz": "d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", + "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl": "77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34" + }, + "cachetools": { + "https://files.pythonhosted.org/packages/d9/74/57df1ab0ce6bc5f6fa868e08de20df8ac58f9c44330c7671ad922d2bbeae/cachetools-5.5.1.tar.gz": "70f238fbba50383ef62e55c6aff6d9673175fe59f7c6782c7a0b9e38f4a9df95", + "https://files.pythonhosted.org/packages/ec/4e/de4ff18bcf55857ba18d3a4bd48c8a9fde6bb0980c9d20b263f05387fd88/cachetools-5.5.1-py3-none-any.whl": "b76651fdc3b24ead3c648bbdeeb940c1b04d365b38b4af66788f9ec4a81d42bb" + }, + "certifi": { + "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz": "3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", + "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl": "ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", + "https://files.pythonhosted.org/packages/4c/5b/b6ce21586237c77ce67d01dc5507039d444b630dd76611bbca2d8e5dcd91/certifi-2025.10.5.tar.gz": "47c09d31ccf2acf0be3f701ea53595ee7e0b8fa08801c6624be771df09ae7b43", + "https://files.pythonhosted.org/packages/e4/37/af0d2ef3967ac0d6113837b44a4f0bfe1328c2b9763bd5b1744520e5cfed/certifi-2025.10.5-py3-none-any.whl": "0f212c2744a9bb6de0c56639a6f68afe01ecd92d91f14ae897c4fe7bbeeef0de" + }, + "cffi": { + "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", + "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl": "3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", + "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl": "5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", + "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl": "b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", + "https://files.pythonhosted.org/packages/15/12/a7a79bd0df4c3bff744b2d7e52cc1b68d5e7e427b384252c42366dc1ecbc/cffi-2.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165", + "https://files.pythonhosted.org/packages/1f/74/cc4096ce66f5939042ae094e2e96f53426a979864aa1f96a621ad128be27/cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63", + "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl": "cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", + "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl": "7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", + "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl": "737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", + "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl": "c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", + "https://files.pythonhosted.org/packages/2b/e7/7c769804eb75e4c4b35e658dba01de1640a351a9653c3d49ca89d16ccc91/cffi-2.0.0-cp39-cp39-musllinux_1_2_x86_64.whl": "89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322", + "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl": "7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", + "https://files.pythonhosted.org/packages/32/f2/81b63e288295928739d715d00952c8c6034cb6c6a516b17d37e0c8be5600/cffi-2.0.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl": "cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f", + "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl": "b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", + "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl": "6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", + "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl": "19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", + "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl": "81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", + "https://files.pythonhosted.org/packages/3d/de/38d9726324e127f727b4ecc376bc85e505bfe61ef130eaf3f290c6847dd4/cffi-2.0.0-cp39-cp39-macosx_11_0_arm64.whl": "de8dad4425a6ca6e4e5e297b27b5c824ecc7581910bf9aee86cb6835e6812aa7", + "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl": "9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", + "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl": "087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", + "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl": "a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", + "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", + "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl": "8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", + "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl": "45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", + "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl": "00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", + "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", + "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl": "2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", + "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl": "53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", + "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl": "d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", + "https://files.pythonhosted.org/packages/54/8f/a1e836f82d8e32a97e6b29cc8f641779181ac7363734f12df27db803ebda/cffi-2.0.0-cp39-cp39-win_amd64.whl": "b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9", + "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl": "c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", + "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl": "e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", + "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", + "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl": "da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", + "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl": "9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", + "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl": "fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", + "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl": "0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", + "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl": "4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", + "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl": "c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", + "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", + "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", + "https://files.pythonhosted.org/packages/9b/13/c92e36358fbcc39cf0962e83223c9522154ee8630e1df7c0b3a39a8124e2/cffi-2.0.0-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl": "4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c", + "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl": "f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", + "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl": "dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", + "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl": "9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", + "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl": "1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", + "https://files.pythonhosted.org/packages/a3/ad/5c51c1c7600bdd7ed9a24a203ec255dccdd0ebf4527f7b922a0bde2fb6ed/cffi-2.0.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534", + "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", + "https://files.pythonhosted.org/packages/aa/d9/6218d78f920dcd7507fc16a766b5ef8f3b913cc7aa938e7fc80b9978d089/cffi-2.0.0-cp39-cp39-win32.whl": "2081580ebb843f759b9f617314a24ed5738c51d2aee65d31e02f6f7a2b97707a", + "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl": "94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", + "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl": "0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", + "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl": "66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", + "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl": "07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", + "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl": "baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", + "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", + "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl": "2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", + "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", + "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl": "203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", + "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl": "d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", + "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", + "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl": "d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", + "https://files.pythonhosted.org/packages/c0/cc/08ed5a43f2996a16b462f64a7055c6e962803534924b9b2f1371d8c00b7b/cffi-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl": "fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf", + "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", + "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl": "38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", + "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl": "256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", + "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl": "dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", + "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", + "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", + "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", + "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", + "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl": "b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", + "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", + "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl": "8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", + "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", + "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl": "6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", + "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl": "1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", + "https://files.pythonhosted.org/packages/e8/be/f6424d1dc46b1091ffcc8964fa7c0ab0cd36839dd2761b49c90481a6ba1b/cffi-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl": "0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2", + "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl": "6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", + "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz": "44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", + "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl": "74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", + "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", + "https://files.pythonhosted.org/packages/f7/e0/dda537c2309817edf60109e39265f24f24aa7f050767e22c98c53fe7f48b/cffi-2.0.0-cp39-cp39-musllinux_1_2_i686.whl": "1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65", + "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl": "da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", + "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl": "21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe" + }, + "chardet": { + "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl": "e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", + "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz": "1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7" + }, + "charset-normalizer": { + "https://files.pythonhosted.org/packages/00/bd/ef9c88464b126fa176f4ef4a317ad9b6f4d30b2cffbc43386062367c3e2c/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "8999f965f922ae054125286faf9f11bc6932184b93011d138925a1773830bbe9", + "https://files.pythonhosted.org/packages/01/09/11d684ea5819e5a8f5100fb0b38cf8d02b514746607934134d31233e02c8/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037", + "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl": "ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", + "https://files.pythonhosted.org/packages/03/d2/3f392f23f042615689456e9a274640c1d2e5dd1d52de36ab8f7955f8f050/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl": "d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247", + "https://files.pythonhosted.org/packages/04/9a/914d294daa4809c57667b77470533e65def9c0be1ef8b4c1183a99170e9d/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "fb731e5deb0c7ef82d698b0f4c5bb724633ee2a489401594c5c88b02e6cb15f7", + "https://files.pythonhosted.org/packages/04/d2/42fd330901aaa4b805a1097856c2edf5095e260a597f65def493f4b8c833/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl": "2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496", + "https://files.pythonhosted.org/packages/05/35/bb59b1cd012d7196fc81c2f5879113971efc226a63812c9cf7f89fe97c40/charset_normalizer-3.4.3-cp38-cp38-win_amd64.whl": "5d8d01eac18c423815ed4f4a2ec3b439d654e55ee4ad610e153cf02faf67ea40", + "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl": "42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", + "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl": "30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", + "https://files.pythonhosted.org/packages/08/06/9f5a12939db324d905dc1f70591ae7d7898d030d7662f0d426e2286f68c9/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl": "80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f", + "https://files.pythonhosted.org/packages/0a/97/a183d752295997d95d20f2aa34d66ff6abda5af5482d0e7995dbbc9a753a/charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl": "2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e", + "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl": "73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", + "https://files.pythonhosted.org/packages/0b/fe/4ade940a1b4bac031357b4a74fc8406a2ecd9dfc007dea850c5b7ee348de/charset_normalizer-3.4.1-cp37-cp37m-win32.whl": "7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487", + "https://files.pythonhosted.org/packages/0c/52/8b0c6c3e53f7e546a5e49b9edb876f379725914e1130297f3b423c7b71c5/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "c60e092517a73c632ec38e290eba714e9627abe9d301c8c8a12ec32c314a2a4b", + "https://files.pythonhosted.org/packages/0c/5a/0b59704c38470df6768aa154cc87b1ac7c9bb687990a1559dc8765e8627e/charset_normalizer-3.4.1-cp39-cp39-win32.whl": "3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5", + "https://files.pythonhosted.org/packages/0d/58/5580c1716040bc89206c77d8f74418caf82ce519aae06450393ca73475d1/charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl": "91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de", + "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl": "d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", + "https://files.pythonhosted.org/packages/0f/6c/2bee440303d705b6fb1e2ec789543edec83d32d258299b16eed28aad48e0/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f", + "https://files.pythonhosted.org/packages/10/2f/6e2c727649d5e97ee17230f4c064480c69eb563f52ba87df448647d77a99/charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e", + "https://files.pythonhosted.org/packages/10/bd/6517ea94f2672e801011d50b5d06be2a0deaf566aea27bcdcd47e5195357/charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl": "ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c", + "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl": "e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", + "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", + "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz": "44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", + "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl": "2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", + "https://files.pythonhosted.org/packages/1a/79/ae516e678d6e32df2e7e740a7be51dc80b700e2697cb70054a0f1ac2c955/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "3653fad4fe3ed447a596ae8638b437f827234f01a8cd801842e43f3d0a6b281b", + "https://files.pythonhosted.org/packages/1e/0d/38ef4ae41e9248d63fc4998d933cae22473b1b2ac4122cf908d0f5eb32aa/charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c", + "https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl": "d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76", + "https://files.pythonhosted.org/packages/20/30/5f64fe3981677fe63fa987b80e6c01042eb5ff653ff7cec1b7bd9268e54e/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl": "2c322db9c8c89009a990ef07c3bcc9f011a3269bc06782f916cd3d9eed7c9312", + "https://files.pythonhosted.org/packages/21/40/5188be1e3118c82dcb7c2a5ba101b783822cfb413a0268ed3be0468532de/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe", + "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl": "6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", + "https://files.pythonhosted.org/packages/22/82/63a45bfc36f73efe46731a3a71cb84e2112f7e0b049507025ce477f0f052/charset_normalizer-3.4.3-cp38-cp38-macosx_10_9_universal2.whl": "0f2be7e0cf7754b9a30eb01f4295cc3d4358a479843b31f328afd210e2c7598c", + "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", + "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", + "https://files.pythonhosted.org/packages/26/ae/23d6041322a3556e4da139663d02fb1b3c59a23ab2e2b56432bd2ad63ded/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl": "ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7", + "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl": "b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", + "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl": "4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", + "https://files.pythonhosted.org/packages/2a/91/26c3036e62dfe8de8061182d33be5025e2424002125c9500faff74a6735e/charset_normalizer-3.4.3-cp310-cp310-win32.whl": "d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f", + "https://files.pythonhosted.org/packages/2d/ce/3cbed41cff67e455a386fb5e5dd8906cdda2ed92fbc6297921f2e4419309/charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl": "9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f", + "https://files.pythonhosted.org/packages/2f/36/77da9c6a328c54d17b960c89eccacfab8271fdaaa228305330915b88afa9/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl": "1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae", + "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl": "cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", + "https://files.pythonhosted.org/packages/33/9e/eca49d35867ca2db336b6ca27617deed4653b97ebf45dfc21311ce473c37/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl": "78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a", + "https://files.pythonhosted.org/packages/37/60/5d0d74bc1e1380f0b72c327948d9c2aca14b46a9efd87604e724260f384c/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl": "07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601", + "https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl": "234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", + "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl": "aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", + "https://files.pythonhosted.org/packages/39/c6/99271dc37243a4f925b09090493fb96c9333d7992c6187f5cfe5312008d2/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "23b6b24d74478dc833444cbd927c338349d6ae852ba53a0d02a2de1fce45b96e", + "https://files.pythonhosted.org/packages/39/f4/d9f4f712d0951dcbfd42920d3db81b00dd23b6ab520419626f4023334056/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl": "eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807", + "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl": "86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", + "https://files.pythonhosted.org/packages/3a/a4/b3b6c76e7a635748c4421d2b92c7b8f90a432f98bda5082049af37ffc8e3/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl": "00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91", + "https://files.pythonhosted.org/packages/3b/38/20a1f44e4851aa1c9105d6e7110c9d020e093dfa5836d712a5f074a12bf7/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl": "4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0", + "https://files.pythonhosted.org/packages/3d/04/cb42585f07f6f9fd3219ffb6f37d5a39b4fd2db2355b23683060029c35f7/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2", + "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl": "237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", + "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", + "https://files.pythonhosted.org/packages/40/bb/20affbbd9ea29c71ea123769dc568a6d42052ff5089c5fe23e21e21084a6/charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl": "329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4", + "https://files.pythonhosted.org/packages/43/01/754cdb29dd0560f58290aaaa284d43eea343ad0512e6ad3b8b5c11f08592/charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a", + "https://files.pythonhosted.org/packages/45/8c/dcef87cfc2b3f002a6478f38906f9040302c68aebe21468090e39cde1445/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_x86_64.whl": "88ab34806dea0671532d3f82d82b85e8fc23d7b2dd12fa837978dad9bb392a34", + "https://files.pythonhosted.org/packages/49/2b/999d0314e4ee0cff3cb83e6bc9aeddd397eeed693edb4facb901eb8fbb69/charset_normalizer-3.4.1-cp310-cp310-win32.whl": "c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f", + "https://files.pythonhosted.org/packages/4c/92/27dbe365d34c68cfe0ca76f1edd70e8705d82b378cb54ebbaeabc2e3029d/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl": "939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14", + "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl": "c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", + "https://files.pythonhosted.org/packages/50/10/c117806094d2c956ba88958dab680574019abc0c02bcf57b32287afca544/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_x86_64.whl": "a2d08ac246bb48479170408d6c19f6385fa743e7157d716e144cad849b2dd94b", + "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl": "fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", + "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", + "https://files.pythonhosted.org/packages/54/54/2412a5b093acb17f0222de007cc129ec0e0df198b5ad2ce5699355269dfe/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl": "75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770", + "https://files.pythonhosted.org/packages/59/c0/a74f3bd167d311365e7973990243f32c35e7a94e45103125275b9e6c479f/charset_normalizer-3.4.3-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl": "252098c8c7a873e17dd696ed98bbe91dbacd571da4b87df3736768efa7a792e4", + "https://files.pythonhosted.org/packages/5a/6d/e2773862b043dcf8a221342954f375392bb2ce6487bcd9f2c1b34e1d6781/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4", + "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl": "2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", + "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl": "1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", + "https://files.pythonhosted.org/packages/61/c5/dc3ba772489c453621ffc27e8978a98fe7e41a93e787e5e5bde797f1dddb/charset_normalizer-3.4.3-cp38-cp38-win32.whl": "ec557499516fc90fd374bf2e32349a2887a876fbf162c160e3c01b6849eaf557", + "https://files.pythonhosted.org/packages/61/f1/190d9977e0084d3f1dc169acd060d479bbbc71b90bf3e7bf7b9927dec3eb/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl": "96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30", + "https://files.pythonhosted.org/packages/63/86/9cbd533bd37883d467fcd1bd491b3547a3532d0fbb46de2b99feeebf185e/charset_normalizer-3.4.3-cp39-cp39-win32.whl": "16a8770207946ac75703458e2c743631c79c59c5890c80011d536248f8eaa432", + "https://files.pythonhosted.org/packages/64/d1/f9d141c893ef5d4243bc75c130e95af8fd4bc355beff06e9b1e941daad6e/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_ppc64le.whl": "5b413b0b1bfd94dbf4023ad6945889f374cd24e3f62de58d6bb102c4d9ae534a", + "https://files.pythonhosted.org/packages/64/d4/9eb4ff2c167edbbf08cdd28e19078bf195762e9bd63371689cab5ecd3d0d/charset_normalizer-3.4.3-cp311-cp311-win32.whl": "6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849", + "https://files.pythonhosted.org/packages/65/1a/7425c952944a6521a9cfa7e675343f83fd82085b8af2b1373a2409c683dc/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2", + "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl": "14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", + "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl": "c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", + "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl": "09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", + "https://files.pythonhosted.org/packages/6f/7f/0c0dad447819e90b93f8ed238cc8f11b91353c23c19e70fa80483a155bed/charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl": "89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd", + "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl": "18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", + "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", + "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", + "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl": "d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", + "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl": "8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", + "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", + "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl": "fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", + "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl": "0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", + "https://files.pythonhosted.org/packages/7a/03/cbb6fac9d3e57f7e07ce062712ee80d80a5ab46614684078461917426279/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_aarch64.whl": "d95bfb53c211b57198bb91c46dd5a2d8018b3af446583aab40074bf7988401cb", + "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", + "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl": "804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", + "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", + "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl": "53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", + "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", + "https://files.pythonhosted.org/packages/7f/b5/991245018615474a60965a7c9cd2b4efbaabd16d582a5547c47ee1c7730b/charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl": "b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b", + "https://files.pythonhosted.org/packages/7f/c0/b913f8f02836ed9ab32ea643c6fe4d3325c3d8627cf6e78098671cafff86/charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl": "b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41", + "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", + "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz": "6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", + "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl": "5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", + "https://files.pythonhosted.org/packages/85/2d/a9790237cb4d01a6d57afadc8573c8b73c609ade20b80f4cda30802009ee/charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl": "49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765", + "https://files.pythonhosted.org/packages/85/9a/d891f63722d9158688de58d050c59dc3da560ea7f04f4c53e769de5140f5/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c", + "https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl": "09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", + "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", + "https://files.pythonhosted.org/packages/87/df/b7737ff046c974b183ea9aa111b74185ac8c3a326c6262d413bd5a1b8c69/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07", + "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", + "https://files.pythonhosted.org/packages/89/17/74bb34d02d62a21cc626c7d4db475b6f2207980f6beb002051db8342b139/charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl": "7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d", + "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl": "ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", + "https://files.pythonhosted.org/packages/8d/af/779ad72a4da0aed925e1139d458adc486e61076d7ecdcc09e610ea8678db/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl": "d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb", + "https://files.pythonhosted.org/packages/8e/09/9f8abcc6fff60fb727268b63c376c8c79cc37b833c2dfe1f535dfb59523b/charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl": "7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824", + "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl": "3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", + "https://files.pythonhosted.org/packages/8f/aa/73a89701dd661d9b5d24d0594c42ed0f7a3aed4448cc4f8f7315d0701399/charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl": "7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd", + "https://files.pythonhosted.org/packages/93/62/5e89cdfe04584cb7f4d36003ffa2936681b03ecc0754f8e969c2becb7e24/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a", + "https://files.pythonhosted.org/packages/94/22/b8f2081c6a77cb20d97e57e0b385b481887aa08019d2459dc2858ed64871/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl": "4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6", + "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", + "https://files.pythonhosted.org/packages/96/c6/f62d90c0e66525a374c35a1389f4290e5d7a731cd2cfacd9740272f927f9/charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl": "01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa", + "https://files.pythonhosted.org/packages/99/04/baae2a1ea1893a01635d475b9261c889a18fd48393634b6270827869fa34/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl": "fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c", + "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl": "cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", + "https://files.pythonhosted.org/packages/9e/af/3a97a4fa3c53586f1910dadfc916e9c4f35eeada36de4108f5096cb7215f/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl": "363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78", + "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", + "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl": "6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", + "https://files.pythonhosted.org/packages/a4/fa/384d2c0f57edad03d7bec3ebefb462090d8905b4ff5a2d2525f3bb711fac/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl": "02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0", + "https://files.pythonhosted.org/packages/a8/00/b8b43690ecac81e5038dc6332681757123ee9c4c15eb4a6ecf0232393f59/charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl": "807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534", + "https://files.pythonhosted.org/packages/a9/ac/ab729a15c516da2ab70a05f8722ecfccc3f04ed7a18e45c75bbbaa347d61/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a", + "https://files.pythonhosted.org/packages/aa/17/c94be7ee0d142687e047fe1de72060f6d6837f40eedc26e87e6e124a3fc6/charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8", + "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", + "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl": "027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", + "https://files.pythonhosted.org/packages/b0/a8/6f5bcf1bcf63cb45625f7c5cadca026121ff8a6c8a3256d8d8cd59302663/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "257f26fed7d7ff59921b78244f3cd93ed2af1800ff048c33f624c87475819dd7", + "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl": "5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", + "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl": "9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", + "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl": "0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", + "https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl": "8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b", + "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl": "c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", + "https://files.pythonhosted.org/packages/b9/f8/ca440ef60d8f8916022859885f231abb07ada3c347c03d63f283bec32ef5/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537", + "https://files.pythonhosted.org/packages/ba/cd/861883ba5160c7a9bd242c30b2c71074cda2aefcc0addc91118e0d4e0765/charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl": "619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd", + "https://files.pythonhosted.org/packages/bb/a6/3a22521736a3a75263ce930a2257eb60fd2a6b8fd9293ea1271a074a202f/charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089", + "https://files.pythonhosted.org/packages/be/e5/3f363dad2e24378f88ccf63ecc39e817c29f32e308ef21a7a6d9c1201165/charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl": "345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca", + "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl": "320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", + "https://files.pythonhosted.org/packages/c2/1e/fa099993d17c00addbb76b3bfcd3ab1692fefc4e193ba738e111c09cfbe2/charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d", + "https://files.pythonhosted.org/packages/c2/95/8725b2b2fcb418abe048b5558af42e444161433a76b47759539fe5bb7992/charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl": "7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf", + "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl": "6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", + "https://files.pythonhosted.org/packages/c2/b6/7aa450b278e7aa92cf7732140bfd8be21f5f29d5bf334ae987c945276639/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl": "2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d", + "https://files.pythonhosted.org/packages/c2/ca/9a0983dd5c8e9733565cf3db4df2b0a2e9a82659fd8aa2a868ac6e4a991f/charset_normalizer-3.4.3-cp39-cp39-macosx_10_9_universal2.whl": "70bfc5f2c318afece2f5838ea5e4c3febada0be750fcf4775641052bbba14d05", + "https://files.pythonhosted.org/packages/c4/72/d3d0e9592f4e504f9dea08b8db270821c909558c353dc3b457ed2509f2fb/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_aarch64.whl": "1ef99f0456d3d46a50945c98de1774da86f8e992ab5c77865ea8b8195341fc19", + "https://files.pythonhosted.org/packages/c5/35/9c99739250742375167bc1b1319cd1cec2bf67438a70d84b2e1ec4c9daa3/charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_s390x.whl": "b5e3b2d152e74e100a9e9573837aba24aab611d39428ded46f4e4022ea7d1942", + "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl": "c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", + "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", + "https://files.pythonhosted.org/packages/c7/0b/c5ec5092747f801b8b093cdf5610e732b809d6cb11f4c51e35fc28d1d389/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl": "04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294", + "https://files.pythonhosted.org/packages/c7/2a/ae245c41c06299ec18262825c1569c5d3298fc920e4ddf56ab011b417efd/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64", + "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl": "eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", + "https://files.pythonhosted.org/packages/ce/d6/7e805c8e5c46ff9729c49950acc4ee0aeb55efb8b3a56687658ad10c3216/charset_normalizer-3.4.3-cp39-cp39-win_amd64.whl": "d22dbedd33326a4a5190dd4fe9e9e693ef12160c77382d9e87919bce54f3d4ca", + "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", + "https://files.pythonhosted.org/packages/d0/11/00341177ae71c6f5159a08168bcb98c6e6d196d372c94511f9f6c9afe0c6/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176", + "https://files.pythonhosted.org/packages/d3/81/396e7d7f5d7420da8273c91175d2e9a3f569288e3611d521685e4b9ac9cc/charset_normalizer-3.4.1-cp38-cp38-win32.whl": "ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e", + "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", + "https://files.pythonhosted.org/packages/d6/98/f3b8013223728a99b908c9344da3aa04ee6e3fa235f19409033eda92fb78/charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl": "fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72", + "https://files.pythonhosted.org/packages/e1/ef/dd08b2cac9284fd59e70f7d97382c33a3d0a926e45b15fc21b3308324ffd/charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_s390x.whl": "511729f456829ef86ac41ca78c63a5cb55240ed23b4b737faca0eb1abb1c41bc", + "https://files.pythonhosted.org/packages/e2/c6/f05db471f81af1fa01839d44ae2a8bfeec8d2a8b4590f16c4e7393afd323/charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl": "c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669", + "https://files.pythonhosted.org/packages/e2/e6/63bb0e10f90a8243c5def74b5b105b3bbbfb3e7bb753915fe333fb0c11ea/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f", + "https://files.pythonhosted.org/packages/e4/10/a78c0e91f487b4ad0ef7480ac765e15b774f83de2597f1b6ef0eaf7a2f99/charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl": "0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b", + "https://files.pythonhosted.org/packages/e4/69/132eab043356bba06eb333cc2cc60c6340857d0a2e4ca6dc2b51312886b3/charset_normalizer-3.4.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl": "34a7f768e3f985abdb42841e20e17b330ad3aaf4bb7e7aeeb73db2e70f077b99", + "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl": "fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", + "https://files.pythonhosted.org/packages/e5/0d/815a2ba3f283b4eeaa5ece57acade365c5b4135f65a807a083c818716582/charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9", + "https://files.pythonhosted.org/packages/e9/1b/0cad3a4f1906dc36a9cc89093d36b134638463e8e43479dbb96fd47d99ef/charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a", + "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl": "e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", + "https://files.pythonhosted.org/packages/ec/a3/2db14427b37cefbf9a9ec3d3c861e1b1721e4d4507536df102c2854966dc/charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl": "dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e", + "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl": "73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", + "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl": "2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", + "https://files.pythonhosted.org/packages/f0/c9/a2c9c2a355a8594ce2446085e2ec97fd44d323c684ff32042e2a6b718e1d/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl": "c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0", + "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", + "https://files.pythonhosted.org/packages/f2/e3/e20aae5e1039a2cd9b08d9205f52142329f887f8cf70da3650326670bddf/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl": "3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408", + "https://files.pythonhosted.org/packages/f4/9c/996a4a028222e7761a96634d1820de8a744ff4327a00ada9c8942033089b/charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl": "31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c", + "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl": "bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", + "https://files.pythonhosted.org/packages/f7/33/557ac796c47165fc141e4fb71d7b0310f67e05cb420756f3a82e0a0068e0/charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl": "dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6", + "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl": "2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", + "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl": "c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018" + }, + "constantly": { + "https://files.pythonhosted.org/packages/4d/6f/cb2a94494ff74aa9528a36c5b1422756330a75a8367bf20bd63171fc324d/constantly-23.10.4.tar.gz": "aa92b70a33e2ac0bb33cd745eb61776594dc48764b06c35e0efd050b7f1c7cbd", + "https://files.pythonhosted.org/packages/b8/40/c199d095151addf69efdb4b9ca3a4f20f70e20508d6222bffb9b76f58573/constantly-23.10.4-py3-none-any.whl": "3fd9b4d1c3dc1ec9757f3c52aef7e53ad9323dbe39f51dfd4c43853b68dfa3f9" + }, + "cryptography": { + "https://files.pythonhosted.org/packages/00/f2/c166af87e95ce6ae6d38471a7e039d3a0549c2d55d74e059680162052824/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl": "d97cf502abe2ab9eff8bd5e4aca274da8d06dd3ef08b759a8d6143f4ad65d4b4", + "https://files.pythonhosted.org/packages/01/41/3a578f7fd5c70611c0aacba52cd13cb364a5dee895a5c1d467208a9380b0/cryptography-46.0.6-cp314-cp314t-macosx_10_9_universal2.whl": "2ef9e69886cbb137c2aef9772c2e7138dc581fad4fcbcf13cc181eb5a3ab6275", + "https://files.pythonhosted.org/packages/01/59/562be1e653accee4fdad92c7a2e88fced26b3fdfce144047519bbebc299e/cryptography-46.0.6-cp311-abi3-manylinux_2_31_armv7l.whl": "760997a4b950ff00d418398ad73fbc91aa2894b5c1db7ccb45b4f68b42a63b3c", + "https://files.pythonhosted.org/packages/01/b3/0796998056a66d1973fd52ee89dc1bb3b6581960a91ad4ac705f182d398f/cryptography-46.0.6-cp38-abi3-manylinux_2_31_armv7l.whl": "02fad249cb0e090b574e30b276a3da6a149e04ee2f049725b1f69e7b8351ec70", + "https://files.pythonhosted.org/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl": "fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd", + "https://files.pythonhosted.org/packages/09/0a/4fe7a8d25fed74419f91835cf5829ade6408fd1963c9eae9c4bce390ecbb/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_aarch64.whl": "8e7304c4f4e9490e11efe56af6713983460ee0780f16c63f219984dab3af9d2d", + "https://files.pythonhosted.org/packages/0a/09/ddc5f630cc32287d2c953fc5d32705e63ec73e37308e5120955316f53827/cryptography-46.0.6-cp38-abi3-win32.whl": "7f6690b6c55e9c5332c0b59b9c8a3fb232ebf059094c17f9019a51e9827df91c", + "https://files.pythonhosted.org/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl": "1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c", + "https://files.pythonhosted.org/packages/0c/91/925c0ac74362172ae4516000fe877912e33b5983df735ff290c653de4913/cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl": "3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee", + "https://files.pythonhosted.org/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl": "b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3", + "https://files.pythonhosted.org/packages/0f/a8/976acdd4f0f30df7b25605f4b9d3d89295351665c2091d18224f7ad5cdbf/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_ppc64le.whl": "3c21d92ed15e9cfc6eb64c1f5a0326db22ca9c2566ca46d845119b45b4400361", + "https://files.pythonhosted.org/packages/10/38/cd7864d79aa1d92ef6f1a584281433419b955ad5a5ba8d1eb6c872165bcb/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_x86_64.whl": "69cf0056d6947edc6e6760e5f17afe4bea06b56a9ac8a06de9d2bd6b532d4f3a", + "https://files.pythonhosted.org/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl": "48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27", + "https://files.pythonhosted.org/packages/13/3e/e42f1528ca1ea82256b835191eab1be014e0f9f934b60d98b0be8a38ed70/cryptography-45.0.7-pp310-pypy310_pp73-macosx_10_9_x86_64.whl": "de58755d723e86175756f463f2f0bddd45cc36fbd62601228a3f8761c9f58252", + "https://files.pythonhosted.org/packages/16/0b/b239701eb946523e4e9f329336e4ff32b1247e109cbab32d1a7b61da8ed7/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_aarch64.whl": "aad75154a7ac9039936d50cf431719a2f8d4ed3d3c277ac03f3339ded1a5e707", + "https://files.pythonhosted.org/packages/16/b9/e96e0b6cb86eae27ea51fa8a3151535a18e66fe7c451fa90f7f89c85f541/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl": "c987dad82e8c65ebc985f5dae5e74a3beda9d0a2a4daf8a1115f3772b59e5141", + "https://files.pythonhosted.org/packages/16/ce/5f6ff59ea9c7779dba51b84871c19962529bdcc12e1a6ea172664916c550/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl": "06ce84dc14df0bf6ea84666f958e6080cdb6fe1231be2a51f3fc1267d9f3fb34", + "https://files.pythonhosted.org/packages/19/69/732a736d12c2631e140be2348b4ad3d226302df63ef64d30dfdb8db7ad1c/cryptography-46.0.6-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "9a693028b9cbe51b5a1136232ee8f2bc242e4e19d456ded3fa7c86e43c713b4a", + "https://files.pythonhosted.org/packages/1a/89/843b53614b47f97fe1abc13f9a86efa5ec9e275292c457af1d4a60dc80e0/cryptography-46.0.6-pp311-pypy311_pp73-win_amd64.whl": "6728c49e3b2c180ef26f8e9f0a883a2c585638db64cf265b49c9ba10652d430e", + "https://files.pythonhosted.org/packages/1b/82/ca4893968aeb2709aacfb57a30dec6fa2ab25b10fa9f064b8882ce33f599/cryptography-46.0.6-cp38-abi3-win_amd64.whl": "79e865c642cfc5c0b3eb12af83c35c5aeff4fa5c672dc28c43721c2c9fdd2f0f", + "https://files.pythonhosted.org/packages/1c/c5/8c59d6b7c7b439ba4fc8d0cab868027fd095f215031bc123c3a070962912/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl": "2f641b64acc00811da98df63df7d59fd4706c0df449da71cb7ac39a0732b40ae", + "https://files.pythonhosted.org/packages/1d/5c/f6c3596a1430cec6f949085f0e1a970638d76f81c3ea56d93d564d04c340/cryptography-46.0.6-cp311-abi3-musllinux_1_2_aarch64.whl": "2b417edbe8877cda9022dde3a008e2deb50be9c407eef034aeeb3a8b11d9db3c", + "https://files.pythonhosted.org/packages/21/5e/19f3260ed1e95bced52ace7501fabcd266df67077eeb382b79c81729d2d3/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_ppc64le.whl": "ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4", + "https://files.pythonhosted.org/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl": "a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6", + "https://files.pythonhosted.org/packages/23/87/7ce86f3fa14bc11a5a48c30d8103c26e09b6465f8d8e9d74cf7a0714f043/cryptography-45.0.7-pp311-pypy311_pp73-win_amd64.whl": "1f3d56f73595376f4244646dd5c5870c14c196949807be39e79e7bd9bac3da63", + "https://files.pythonhosted.org/packages/24/06/09b6f6a2fc43474a32b8fe259038eef1500ee3d3c141599b57ac6c57612c/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl": "258e0dff86d1d891169b5af222d362468a9570e2532923088658aa866eb11130", + "https://files.pythonhosted.org/packages/29/56/3034a3a353efa65116fa20eb3c990a8c9f0d3db4085429040a7eef9ada5f/cryptography-45.0.7-cp311-abi3-win32.whl": "bef32a5e327bd8e5af915d3416ffefdbe65ed975b646b3805be81b23580b57b8", + "https://files.pythonhosted.org/packages/2e/84/7ccff00ced5bac74b775ce0beb7d1be4e8637536b522b5df9b73ada42da2/cryptography-46.0.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl": "2ea0f37e9a9cf0df2952893ad145fd9627d326a59daec9b0802480fa3bcd2ead", + "https://files.pythonhosted.org/packages/2f/97/daba0f5d2dc6d855e2dcb70733c812558a7977a55dd4a6722756628c44d1/cryptography-46.0.6-cp38-abi3-manylinux_2_28_aarch64.whl": "8927ccfbe967c7df312ade694f987e7e9e22b2425976ddbf28271d7e58845290", + "https://files.pythonhosted.org/packages/34/71/1ea5a7352ae516d5512d17babe7e1b87d9db5150b21f794b1377eac1edc0/cryptography-46.0.6-cp311-abi3-manylinux_2_28_x86_64.whl": "22259338084d6ae497a19bae5d4c66b7ca1387d3264d1c2c0e72d9e9b6a77b97", + "https://files.pythonhosted.org/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl": "dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b", + "https://files.pythonhosted.org/packages/36/d0/36e8ee39274e9d77baf7d0dafda680cba6e52f3936b846f0d56d64fec915/cryptography-45.0.7-pp310-pypy310_pp73-win_amd64.whl": "c13b1e3afd29a5b3b2656257f14669ca8fa8d7956d509926f0b130b600b50ab7", + "https://files.pythonhosted.org/packages/44/46/466269e833f1c4718d6cd496ffe20c56c9c8d013486ff66b4f69c302a68d/cryptography-46.0.6-cp38-abi3-musllinux_1_2_x86_64.whl": "6617f67b1606dfd9fe4dbfa354a9508d4a6d37afe30306fe6c101b7ce3274b72", + "https://files.pythonhosted.org/packages/47/23/9285e15e3bc57325b0a72e592921983a701efc1ee8f91c06c5f0235d86d9/cryptography-46.0.6-cp311-abi3-macosx_10_9_universal2.whl": "64235194bad039a10bb6d2d930ab3323baaec67e2ce36215fd0952fad0930ca8", + "https://files.pythonhosted.org/packages/49/b3/dc27efd8dcc4bff583b3f01d4a3943cd8b5821777a58b3a6a5f054d61b79/cryptography-46.0.6-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "639301950939d844a9e1c4464d7e07f902fe9a7f6b215bb0d4f28584729935d8", + "https://files.pythonhosted.org/packages/55/32/05385c86d6ca9ab0b4d5bb442d2e3d85e727939a11f3e163fc776ce5eb40/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl": "f5414a788ecc6ee6bc58560e85ca624258a55ca434884445440a810796ea0e0b", + "https://files.pythonhosted.org/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl": "8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3", + "https://files.pythonhosted.org/packages/59/aa/e947693ab08674a2663ed2534cd8d345cf17bf6a1facf99273e8ec8986dc/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl": "a20e442e917889d1a6b3c570c9e3fa2fdc398c20868abcea268ea33c024c4083", + "https://files.pythonhosted.org/packages/5b/ba/d5e27f8d68c24951b0a484924a84c7cdaed7502bac9f18601cd357f8b1d2/cryptography-46.0.6-cp311-abi3-manylinux_2_28_ppc64le.whl": "d9528b535a6c4f8ff37847144b8986a9a143585f0540fbcb1a98115b543aa463", + "https://files.pythonhosted.org/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl": "f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17", + "https://files.pythonhosted.org/packages/5f/a0/7d738944eac6513cd60a8da98b65951f4a3b279b93479a7e8926d9cd730b/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_x86_64.whl": "b928a3ca837c77a10e81a814a693f2295200adb3352395fad024559b7be7a736", + "https://files.pythonhosted.org/packages/60/f8/e61f8f13950ab6195b31913b42d39f0f9afc7d93f76710f299b5ec286ae6/cryptography-46.0.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "26031f1e5ca62fcb9d1fcb34b2b60b390d1aacaa15dc8b895a9ed00968b97b30", + "https://files.pythonhosted.org/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl": "4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8", + "https://files.pythonhosted.org/packages/63/e8/c436233ddf19c5f15b25ace33979a9dd2e7aa1a59209a0ee8554179f1cc0/cryptography-45.0.7-cp37-abi3-macosx_10_9_universal2.whl": "bfb4c801f65dd61cedfc61a83732327fafbac55a47282e6f26f073ca7a41c3b2", + "https://files.pythonhosted.org/packages/71/ed/8f4c1337e9d3b94d8e50ae0b08ad0304a5709d483bfcadfcc77a23dbcb52/cryptography-45.0.7-cp37-abi3-win32.whl": "18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5", + "https://files.pythonhosted.org/packages/7e/c9/9f9cea13ee2dbde070424e0c4f621c091a91ffcc504ffea5e74f0e1daeff/cryptography-46.0.6-cp311-abi3-musllinux_1_2_x86_64.whl": "380343e0653b1c9d7e1f55b52aaa2dbb2fdf2730088d48c43ca1c7c0abb7cc2f", + "https://files.pythonhosted.org/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl": "b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1", + "https://files.pythonhosted.org/packages/89/06/fe1fce39a37ac452e58d04b43b0855261dac320a2ebf8f5260dd55b201a9/cryptography-46.0.6-cp38-abi3-manylinux_2_28_ppc64le.whl": "b12c6b1e1651e42ab5de8b1e00dc3b6354fdfd778e7fa60541ddacc27cd21410", + "https://files.pythonhosted.org/packages/8b/65/5bf43286d566f8171917cae23ac6add941654ccf085d739195a4eacf1674/cryptography-46.0.6-cp38-abi3-manylinux_2_34_x86_64.whl": "341359d6c9e68834e204ceaf25936dffeafea3829ab80e9503860dcc4f4dac58", + "https://files.pythonhosted.org/packages/91/e0/207fb177c3a9ef6a8108f234208c3e9e76a6aa8cf20d51932916bd43bda0/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_aarch64.whl": "c89eb37fae9216985d8734c1afd172ba4927f5a05cfd9bf0e4863c6d5465b013", + "https://files.pythonhosted.org/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl": "16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513", + "https://files.pythonhosted.org/packages/99/4e/49199a4c82946938a3e05d2e8ad9482484ba48bbc1e809e3d506c686d051/cryptography-45.0.7-pp311-pypy311_pp73-macosx_10_9_x86_64.whl": "4a862753b36620af6fc54209264f92c716367f2f0ff4624952276a6bbd18cbde", + "https://files.pythonhosted.org/packages/9e/c5/e1594c4eec66a567c3ac4400008108a415808be2ce13dcb9a9045c92f1a0/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl": "90e5f0a7b3be5f40c3a0a0eafb32c681d8d2c181fc2a1bdabe9b3f611d9f6b1a", + "https://files.pythonhosted.org/packages/a4/ba/04b1bd4218cbc58dc90ce967106d51582371b898690f3ae0402876cc4f34/cryptography-46.0.6.tar.gz": "27550628a518c5c6c903d84f637fbecf287f6cb9ced3804838a1295dc1fd0759", + "https://files.pythonhosted.org/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz": "4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971", + "https://files.pythonhosted.org/packages/aa/a8/0a90c4f0b0871e0e3d1ed126aed101328a8a57fd9fd17f00fb67e82a51ca/cryptography-46.0.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "d24c13369e856b94892a89ddf70b332e0b70ad4a5c43cf3e9cb71d6d7ffa1f7b", + "https://files.pythonhosted.org/packages/ad/b5/1895bc0821226f129bc74d00eccfc6a5969e2028f8617c09790bf89c185e/cryptography-46.0.6-cp311-abi3-win32.whl": "bcb87663e1f7b075e48c3be3ecb5f0b46c8fc50b50a97cf264e7f60242dca3f2", + "https://files.pythonhosted.org/packages/b1/1b/bf0e01a88efd0e59679b69f42d4afd5bced8700bb5e80617b2d63a3741af/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_x86_64.whl": "4668298aef7cddeaf5c6ecc244c2302a2b8e40f384255505c22875eebb47888b", + "https://files.pythonhosted.org/packages/b3/61/0ab90f421c6194705a99d0fa9f6ee2045d916e4455fdbb095a9c2c9a520f/cryptography-45.0.7-cp311-abi3-win_amd64.whl": "3808e6b2e5f0b46d981c24d79648e5c25c35e59902ea4391a0dcb3e667bf7443", + "https://files.pythonhosted.org/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl": "dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4", + "https://files.pythonhosted.org/packages/bb/8b/11df86de2ea389c65aa1806f331cae145f2ed18011f30234cc10ca253de8/cryptography-46.0.6-cp314-cp314t-manylinux_2_31_armv7l.whl": "8ce35b77aaf02f3b59c90b2c8a05c73bac12cea5b4e8f3fbece1f5fddea5f0ca", + "https://files.pythonhosted.org/packages/bc/1f/4c926f50df7749f000f20eede0c896769509895e2648db5da0ed55db711d/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl": "a3e84d5ec9ba01f8fd03802b2147ba77f0c8f2617b2aff254cedd551844209c8", + "https://files.pythonhosted.org/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339", + "https://files.pythonhosted.org/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691", + "https://files.pythonhosted.org/packages/bc/ff/026513ecad58dacd45d1d24ebe52b852165a26e287177de1d545325c0c25/cryptography-45.0.7-cp37-abi3-win_amd64.whl": "7285a89df4900ed3bfaad5679b1e668cb4b38a8de1ccbfc84b05f34512da0a90", + "https://files.pythonhosted.org/packages/c3/f8/c9bcbf0d3e6ad288b9d9aa0b1dee04b063d19e8c4f871855a03ab3a297ab/cryptography-46.0.6-cp311-abi3-win_amd64.whl": "6739d56300662c468fddb0e5e291f9b4d084bead381667b9e654c7dd81705124", + "https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl": "12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a", + "https://files.pythonhosted.org/packages/c5/3d/db200af5a4ffd08918cd55c08399dc6c9c50b0bc72c00a3246e099d3a849/cryptography-46.0.6-cp38-abi3-manylinux_2_34_aarch64.whl": "7e6142674f2a9291463e5e150090b95a8519b2fb6e6aaec8917dd8d094ce750d", + "https://files.pythonhosted.org/packages/c6/65/707be3ffbd5f786028665c3223e86e11c4cda86023adbc56bd72b1b6bab5/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl": "12f0fa16cc247b13c43d56d7b35287ff1569b5b1f4c5e87e92cc4fcc00cd10c0", + "https://files.pythonhosted.org/packages/c9/57/fe4a23eb549ac9d903bd4698ffda13383808ef0876cc912bcb2838799ece/cryptography-46.0.6-cp314-cp314t-win_amd64.whl": "c797e2517cb7880f8297e2c0f43bb910e91381339336f75d2c1c2cbf811b70b4", + "https://files.pythonhosted.org/packages/cb/f1/c2326781ca05208845efca38bf714f76939ae446cd492d7613808badedf1/cryptography-46.0.6-cp314-cp314t-win32.whl": "97c8115b27e19e592a05c45d0dd89c57f81f841cc9880e353e0d3bf25b2139ed", + "https://files.pythonhosted.org/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl": "465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf", + "https://files.pythonhosted.org/packages/ce/13/b3cfbd257ac96da4b88b46372e662009b7a16833bfc5da33bb97dd5631ae/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl": "d0c5c6bac22b177bf8da7435d9d27a6834ee130309749d162b26c3105c0795a9", + "https://files.pythonhosted.org/packages/d4/12/123be7292674abf76b21ac1fc0e1af50661f0e5b8f0ec8285faac18eb99e/cryptography-46.0.6-cp311-abi3-manylinux_2_28_aarch64.whl": "67177e8a9f421aa2d3a170c3e56eca4e0128883cf52a071a7cbf53297f18b175", + "https://files.pythonhosted.org/packages/d6/8b/b1ebfeb788bf4624d36e45ed2662b8bd43a05ff62157093c1539c1288a18/cryptography-46.0.6-cp311-abi3-manylinux_2_34_aarch64.whl": "3dfa6567f2e9e4c5dceb8ccb5a708158a2a871052fa75c8b78cb0977063f1507", + "https://files.pythonhosted.org/packages/d7/18/61acfd5b414309d74ee838be321c636fe71815436f53c9f0334bf19064fa/cryptography-46.0.6-cp38-abi3-manylinux_2_34_ppc64le.whl": "456b3215172aeefb9284550b162801d62f5f264a081049a3e94307fe20792cfa", + "https://files.pythonhosted.org/packages/dd/52/a005f8eabdb28df57c20f84c44d397a755782d6ff6d455f05baa2785bd91/cryptography-46.0.6-cp311-abi3-manylinux_2_34_ppc64le.whl": "cdcd3edcbc5d55757e5f5f3d330dd00007ae463a7e7aa5bf132d1f22a4b62b19", + "https://files.pythonhosted.org/packages/e0/25/7e49c0fa7205cf3597e525d156a6bce5b5c9de1fd7e8cb01120e459f205a/cryptography-46.0.6-cp38-abi3-musllinux_1_2_aarch64.whl": "9a9c42a2723999a710445bc0d974e345c32adfd8d2fac6d8a251fa829ad31cfb", + "https://files.pythonhosted.org/packages/e6/05/e8d0e6eb4f0d83365b3cb0e00eb3c484f7348db0266652ccd84632a3d58d/cryptography-46.0.6-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77", + "https://files.pythonhosted.org/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl": "ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3", + "https://files.pythonhosted.org/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59", + "https://files.pythonhosted.org/packages/ec/4d/8e7d7245c79c617d08724e2efa397737715ca0ec830ecb3c91e547302555/cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl": "d4e4aadb7fc1f88687f47ca20bb7227981b03afaae69287029da08096853b738", + "https://files.pythonhosted.org/packages/f3/6d/73557ed0ef7d73d04d9aba745d2c8e95218213687ee5e76b7d236a5030fc/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl": "50575a76e2951fe7dbd1f56d181f8c5ceeeb075e9ff88e7ad997d2f42af06e7b", + "https://files.pythonhosted.org/packages/fa/87/887f35a6fca9dde90cad08e0de0c89263a8e59b2d2ff904fd9fcd8025b6f/cryptography-46.0.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "7f417f034f91dcec1cb6c5c35b07cdbb2ef262557f701b4ecd803ee8cefed4f4", + "https://files.pythonhosted.org/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6", + "https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl": "063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d" + }, + "deprecated": { + "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl": "bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", + "https://files.pythonhosted.org/packages/98/97/06afe62762c9a8a86af0cfb7bfdab22a43ad17138b07af5b1a58442690a2/deprecated-1.2.18.tar.gz": "422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d" + }, + "docutils": { + "https://files.pythonhosted.org/packages/4a/c0/89fe6215b443b919cb98a5002e107cb5026854ed1ccb6b5833e0768419d1/docutils-0.22.2.tar.gz": "9fdb771707c8784c8f2728b67cb2c691305933d68137ef95a75db5f4dfbc213d", + "https://files.pythonhosted.org/packages/66/dd/f95350e853a4468ec37478414fc04ae2d61dad7a947b3015c3dcc51a09b9/docutils-0.22.2-py3-none-any.whl": "b0e98d679283fc3bb0ead8a5da7f501baa632654e7056e9c5846842213d674d8" + }, + "gevent": { + "https://files.pythonhosted.org/packages/06/6e/19a9bee9092be45679cb69e4dd2e0bf5f897b7140b4b39c57cc123d24829/gevent-25.9.1-cp313-cp313-musllinux_1_2_x86_64.whl": "8d94936f8f8b23d9de2251798fcb603b84f083fdf0d7f427183c1828fb64f117", + "https://files.pythonhosted.org/packages/07/c0/a7b1f25c42db3c5dc787ea7e23b87ec9a534ca757a25906849b7e7cc765e/gevent-25.9.1-cp39-cp39-musllinux_1_2_x86_64.whl": "b274a53e818124a281540ebb4e7a2c524778f745b7a99b01bdecf0ca3ac0ddb0", + "https://files.pythonhosted.org/packages/08/75/6bbe57c19a7aa4527cc0f9afcdf5a5f2aed2603b08aadbccb5bf7f607ff4/gevent-25.9.1-cp313-cp313-musllinux_1_2_aarch64.whl": "e4e17c2d57e9a42e25f2a73d297b22b60b2470a74be5a515b36c984e1a246d47", + "https://files.pythonhosted.org/packages/0f/d8/b1178b70538c91493bec283018b47c16eab4bac9ddf5a3d4b7dd905dab60/gevent-25.9.1-cp310-cp310-win_amd64.whl": "a8ae9f895e8651d10b0a8328a61c9c53da11ea51b666388aa99b0ce90f9fdc27", + "https://files.pythonhosted.org/packages/10/3e/791d1bf1eb47748606d5f2c2aa66571f474d63e0176228b1f1fd7b77ab37/gevent-25.9.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "88b6c07169468af631dcf0fdd3658f9246d6822cc51461d43f7c44f28b0abb82", + "https://files.pythonhosted.org/packages/15/1a/948f8167b2cdce573cf01cec07afc64d0456dc134b07900b26ac7018b37e/gevent-25.9.1-cp314-cp314-macosx_11_0_universal2.whl": "1a3fe4ea1c312dbf6b375b416925036fe79a40054e6bf6248ee46526ea628be1", + "https://files.pythonhosted.org/packages/1d/6c/bb21fd9c095506aeeaa616579a356aa50935165cc0f1e250e1e0575620a7/gevent-25.9.1-cp311-cp311-win_amd64.whl": "72152517ecf548e2f838c61b4be76637d99279dbaa7e01b3924df040aa996586", + "https://files.pythonhosted.org/packages/26/8b/6851e9cd3e4f322fa15c1d196cbf1a8a123da69788b078227dd13dd4208f/gevent-25.9.1-cp310-cp310-musllinux_1_2_x86_64.whl": "03c74fec58eda4b4edc043311fca8ba4f8744ad1632eb0a41d5ec25413581975", + "https://files.pythonhosted.org/packages/2e/ae/49bf0a01f95a1c92c001d7b3f482a2301626b8a0617f448c4cd14ca9b5d4/gevent-25.9.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "fe1599d0b30e6093eb3213551751b24feeb43db79f07e89d98dd2f3330c9063e", + "https://files.pythonhosted.org/packages/31/e8/5c1f6968e5547e501cfa03dcb0239dff55e44c3660a37ec534e32a0c008f/gevent-25.9.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "b28b61ff9216a3d73fe8f35669eefcafa957f143ac534faf77e8a19eb9e6883a", + "https://files.pythonhosted.org/packages/35/5d/5f83f17162301662bd1ce702f8a736a8a8cac7b7a35e1d8b9866938d1f9d/gevent-25.9.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "427f869a2050a4202d93cf7fd6ab5cffb06d3e9113c10c967b6e2a0d45237cb8", + "https://files.pythonhosted.org/packages/3c/2e/9d5f204ead343e5b27bbb2fedaec7cd0009d50696b2266f590ae845d0331/gevent-25.9.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "9cdbb24c276a2d0110ad5c978e49daf620b153719ac8a548ce1250a7eb1b9245", + "https://files.pythonhosted.org/packages/49/2a/3010ed6c44179a3a5c5c152e6de43a30ff8bc2c8de3115ad8733533a018f/gevent-25.9.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "2951bb070c0ee37b632ac9134e4fdaad70d2e660c931bb792983a0837fe5b7d7", + "https://files.pythonhosted.org/packages/4c/1e/de96bd033c03955f54c455b51a5127b1d540afcfc97838d1801fafce6d2e/gevent-25.9.1-cp310-cp310-musllinux_1_2_aarch64.whl": "c5fa9ce5122c085983e33e0dc058f81f5264cebe746de5c401654ab96dddfca8", + "https://files.pythonhosted.org/packages/4f/63/0d7f38c4a2085ecce26b50492fc6161aa67250d381e26d6a7322c309b00f/gevent-25.9.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl": "323a27192ec4da6b22a9e51c3d9d896ff20bc53fdc9e45e56eaab76d1c39dd74", + "https://files.pythonhosted.org/packages/5a/77/b97f086388f87f8ad3e01364f845004aef0123d4430241c7c9b1f9bde742/gevent-25.9.1-cp313-cp313-macosx_11_0_universal2.whl": "4f84591d13845ee31c13f44bdf6bd6c3dbf385b5af98b2f25ec328213775f2ed", + "https://files.pythonhosted.org/packages/5f/35/f6b3a31f0849a62cfa2c64574bcc68a781d5499c3195e296e892a121a3cf/gevent-25.9.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "1cdf6db28f050ee103441caa8b0448ace545364f775059d5e2de089da975c457", + "https://files.pythonhosted.org/packages/60/45/8b6b68ac1d4ef97ae62058aeaf53be75290bc2d2fb940b2a73dfbf8c3260/gevent-25.9.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "f18f80aef6b1f6907219affe15b36677904f7cfeed1f6a6bc198616e507ae2d7", + "https://files.pythonhosted.org/packages/65/58/7bc52544ea5e63af88c4a26c90776feb42551b7555a1c89c20069c168a3f/gevent-25.9.1-cp314-cp314-musllinux_1_2_x86_64.whl": "ddd3ff26e5c4240d3fbf5516c2d9d5f2a998ef87cfb73e1429cfaeaaec860fa6", + "https://files.pythonhosted.org/packages/66/1e/75055950aa9b48f553e061afa9e3728061b5ccecca358cef19166e4ab74a/gevent-25.9.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl": "812debe235a8295be3b2a63b136c2474241fa5c58af55e6a0f8cfc29d4936235", + "https://files.pythonhosted.org/packages/76/24/c0c7c7db70ca74c7b1918388ebda7c8c2a3c3bff0bbfbaa9280ed04b3340/gevent-25.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "b56cbc820e3136ba52cd690bdf77e47a4c239964d5f80dc657c1068e0fe9521c", + "https://files.pythonhosted.org/packages/7a/8d/7236c3a8f6ef7e94c22e658397009596fa90f24c7d19da11ad7ab3a9248e/gevent-25.9.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "7a834804ac00ed8a92a69d3826342c677be651b1c3cd66cc35df8bc711057aa2", + "https://files.pythonhosted.org/packages/81/86/03f8db0704fed41b0fa830425845f1eb4e20c92efa3f18751ee17809e9c6/gevent-25.9.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "18e5aff9e8342dc954adb9c9c524db56c2f3557999463445ba3d9cbe3dada7b7", + "https://files.pythonhosted.org/packages/83/cd/cf5e74e353f60dab357829069ffc300a7bb414c761f52cf8c0c6e9728b8d/gevent-25.9.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl": "c049880175e8c93124188f9d926af0a62826a3b81aa6d3074928345f8238279e", + "https://files.pythonhosted.org/packages/88/3f/266d2eb9f5d75c184a55a39e886b53a4ea7f42ff31f195220a363f0e3f9e/gevent-25.9.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl": "f0d8b64057b4bf1529b9ef9bd2259495747fba93d1f836c77bfeaacfec373fd0", + "https://files.pythonhosted.org/packages/95/18/da5211dfc54c7a57e7432fd9a6ffeae1ce36fe5a313fa782b1c96529ea3d/gevent-25.9.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "6ea78b39a2c51d47ff0f130f4c755a9a4bbb2dd9721149420ad4712743911a51", + "https://files.pythonhosted.org/packages/9b/ec/726b146d1d3aad82e03d2e1e1507048ab6072f906e83f97f40667866e582/gevent-25.9.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "0adb937f13e5fb90cca2edf66d8d7e99d62a299687400ce2edee3f3504009356", + "https://files.pythonhosted.org/packages/9e/48/b3ef2673ffb940f980966694e40d6d32560f3ffa284ecaeb5ea3a90a6d3f/gevent-25.9.1.tar.gz": "adf9cd552de44a4e6754c51ff2e78d9193b7fa6eab123db9578a210e657235dd", + "https://files.pythonhosted.org/packages/a6/5a/7bb5ec8e43a2c6444853c4a9f955f3e72f479d7c24ea86c95fb264a2de65/gevent-25.9.1-cp312-cp312-musllinux_1_2_aarch64.whl": "dc45cd3e1cc07514a419960af932a62eb8515552ed004e56755e4bf20bad30c5", + "https://files.pythonhosted.org/packages/a8/40/8acba57c18ab5aacd1a88a82590c7ca43292b710a2265b75ad7056c5225b/gevent-25.9.1-cp39-cp39-win32.whl": "c6c91f7e33c7f01237755884316110ee7ea076f5bdb9aa0982b6dc63243c0a38", + "https://files.pythonhosted.org/packages/aa/88/63dc9e903980e1da1e16541ec5c70f2b224ec0a8e34088cb42794f1c7f52/gevent-25.9.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "f2b54ea3ca6f0c763281cd3f96010ac7e98c2e267feb1221b5a26e2ca0b9a692", + "https://files.pythonhosted.org/packages/ae/c7/2c60fc4e5c9144f2b91e23af8d87c626870ad3183cfd09d2b3ba6d699178/gevent-25.9.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "856b990be5590e44c3a3dc6c8d48a40eaccbb42e99d2b791d11d1e7711a4297e", + "https://files.pythonhosted.org/packages/c0/2c/ebc5d38a7542af9fb7657bfe10932a558bb98c8a94e4748e827d3823fced/gevent-25.9.1-cp311-cp311-musllinux_1_2_aarch64.whl": "5e4b6278b37373306fc6b1e5f0f1cf56339a1377f67c35972775143d8d7776ff", + "https://files.pythonhosted.org/packages/c2/69/a7c4ba2ffbc7c7dbf6d8b4f5d0f0a421f7815d229f4909854266c445a3d4/gevent-25.9.1-cp314-cp314-win_amd64.whl": "bb63c0d6cb9950cc94036a4995b9cc4667b8915366613449236970f4394f94d7", + "https://files.pythonhosted.org/packages/ca/4f/50de9afd879440e25737e63f5ba6ee764b75a3abe17376496ab57f432546/gevent-25.9.1-cp313-cp313-win_amd64.whl": "eb51c5f9537b07da673258b4832f6635014fee31690c3f0944d34741b69f92fa", + "https://files.pythonhosted.org/packages/ca/d4/b63a0a60635470d7d986ef19897e893c15326dd69e8fb342c76a4f07fe9e/gevent-25.9.1-cp312-cp312-musllinux_1_2_x86_64.whl": "34e01e50c71eaf67e92c186ee0196a039d6e4f4b35670396baed4a2d8f1b347f", + "https://files.pythonhosted.org/packages/d5/98/caf06d5d22a7c129c1fb2fc1477306902a2c8ddfd399cd26bbbd4caf2141/gevent-25.9.1-cp312-cp312-win_amd64.whl": "4acd6bcd5feabf22c7c5174bd3b9535ee9f088d2bbce789f740ad8d6554b18f3", + "https://files.pythonhosted.org/packages/dd/65/b9a4526d4a4edce26fe4b3b993914ec9dc64baabad625a3101e51adb17f3/gevent-25.9.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "b5a67a0974ad9f24721034d1e008856111e0535f1541499f72a733a73d658d1c", + "https://files.pythonhosted.org/packages/e5/be/7d35731dfaf8370795b606e515d964a0967e129db76ea7873f552045dd39/gevent-25.9.1-cp314-cp314-musllinux_1_2_aarch64.whl": "1d0f5d8d73f97e24ea8d24d8be0f51e0cf7c54b8021c1fddb580bf239474690f", + "https://files.pythonhosted.org/packages/e6/26/e1d7d6c8ffbf76fe1fbb4e77bdb7f47d419206adc391ec40a8ace6ebbbf0/gevent-25.9.1-cp311-cp311-musllinux_1_2_x86_64.whl": "d99f0cb2ce43c2e8305bf75bee61a8bde06619d21b9d0316ea190fc7a0620a56", + "https://files.pythonhosted.org/packages/f2/5c/9ad0229b2b4d81249ca41e4f91dd8057deaa0da6d4fbe40bf13cdc5f7a47/gevent-25.9.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl": "b7bb0e29a7b3e6ca9bed2394aa820244069982c36dc30b70eb1004dd67851a48", + "https://files.pythonhosted.org/packages/f3/06/7e576ec64711778fa6fd40a5ee7c5311052bf2dee107ea31c6a5b63c1e2f/gevent-25.9.1-cp39-cp39-win_amd64.whl": "012a44b0121f3d7c800740ff80351c897e85e76a7e4764690f35c5ad9ec17de5", + "https://files.pythonhosted.org/packages/f7/49/e55930ba5259629eb28ac7ee1abbca971996a9165f902f0249b561602f24/gevent-25.9.1-cp312-cp312-macosx_11_0_universal2.whl": "46b188248c84ffdec18a686fcac5dbb32365d76912e14fda350db5dc0bfd4f86" + }, + "google-auth": { + "https://files.pythonhosted.org/packages/9d/47/603554949a37bca5b7f894d51896a9c534b9eab808e2520a748e081669d0/google_auth-2.38.0-py2.py3-none-any.whl": "e7dae6694313f434a2727bf2906f27ad259bae090d7aa896590d86feec3d9d4a", + "https://files.pythonhosted.org/packages/c6/eb/d504ba1daf190af6b204a9d4714d457462b486043744901a6eeea711f913/google_auth-2.38.0.tar.gz": "8285113607d3b80a3f1543b75962447ba8a09fe85783432a784fdeef6ac094c4" + }, + "googleapis-common-protos": { + "https://files.pythonhosted.org/packages/c4/ab/09169d5a4612a5f92490806649ac8d41e3ec9129c636754575b3553f4ea4/googleapis_common_protos-1.72.0-py3-none-any.whl": "4299c5a82d5ae1a9702ada957347726b167f9f8d1fc352477702a1e851ff4038", + "https://files.pythonhosted.org/packages/e5/7b/adfd75544c415c487b33061fe7ae526165241c1ea133f9a9125a56b39fd8/googleapis_common_protos-1.72.0.tar.gz": "e55a601c1b32b52d7a3e65f43563e2aa61bcd737998ee672ac9b951cd49319f5" + }, + "greenlet": { + "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz": "0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", + "https://files.pythonhosted.org/packages/09/16/2c3792cba130000bf2a31c5272999113f4764fd9d874fb257ff588ac779a/greenlet-3.2.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "1ee8fae0519a337f2329cb78bd7a8e128ec0f881073d43f023c7b8d4831d5246", + "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl": "554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", + "https://files.pythonhosted.org/packages/0d/da/343cd760ab2f92bac1845ca07ee3faea9fe52bee65f7bcb19f16ad7de08b/greenlet-3.2.4-cp314-cp314-musllinux_1_2_x86_64.whl": "015d48959d4add5d6c9f6c5210ee3803a830dce46356e3bc326d6776bde54681", + "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl": "3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", + "https://files.pythonhosted.org/packages/1c/53/f9c440463b3057485b8594d7a638bed53ba531165ef0ca0e6c364b5cc807/greenlet-3.2.4-cp313-cp313-musllinux_1_2_aarch64.whl": "6e343822feb58ac4d0a1211bd9399de2b3a04963ddeec21530fc426cc121f19b", + "https://files.pythonhosted.org/packages/1f/8e/abdd3f14d735b2929290a018ecf133c901be4874b858dd1c604b9319f064/greenlet-3.2.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl": "2523e5246274f54fdadbce8494458a2ebdcdbc7b802318466ac5606d3cded1f8", + "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl": "49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", + "https://files.pythonhosted.org/packages/23/6e/74407aed965a4ab6ddd93a7ded3180b730d281c77b765788419484cdfeef/greenlet-3.2.4-cp314-cp314-musllinux_1_2_aarch64.whl": "2917bdf657f5859fbf3386b12d68ede4cf1f04c90c3a6bc1f013dd68a22e2269", + "https://files.pythonhosted.org/packages/25/5d/382753b52006ce0218297ec1b628e048c4e64b155379331f25a7316eb749/greenlet-3.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "0db5594dce18db94f7d1650d7489909b57afde4c580806b8d9203b6e79cdc079", + "https://files.pythonhosted.org/packages/27/45/80935968b53cfd3f33cf99ea5f08227f2646e044568c9b1555b58ffd61c2/greenlet-3.2.4-cp312-cp312-musllinux_1_2_aarch64.whl": "ee7a6ec486883397d70eec05059353b8e83eca9168b9f3f9a361971e77e0bcd0", + "https://files.pythonhosted.org/packages/2a/fc/102ec1a2fc015b3a7652abab7acf3541d58c04d3d17a8d3d6a44adae1eb1/greenlet-3.2.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "94385f101946790ae13da500603491f04a76b6e4c059dab271b3ce2e283b2590", + "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl": "5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", + "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", + "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl": "20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", + "https://files.pythonhosted.org/packages/3f/cc/b07000438a29ac5cfb2194bfc128151d52f333cee74dd7dfe3fb733fc16c/greenlet-3.2.4-cp311-cp311-musllinux_1_1_x86_64.whl": "55e9c5affaa6775e2c6b67659f3a71684de4c549b3dd9afca3bc773533d284fa", + "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl": "3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", + "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", + "https://files.pythonhosted.org/packages/47/e4/3bb4240abdd0a8d23f4f88adec746a3099f0d86bfedb623f063b2e3b4df0/greenlet-3.2.4-cp313-cp313-musllinux_1_2_x86_64.whl": "ca7f6f1f2649b89ce02f6f229d7c19f680a6238af656f61e0115b24857917929", + "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl": "1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", + "https://files.pythonhosted.org/packages/4b/bf/7bd33643e48ed45dcc0e22572f650767832bd4e1287f97434943cc402148/greenlet-3.2.4-cp39-cp39-musllinux_1_2_aarch64.whl": "28a3c6b7cd72a96f61b0e4b2a36f681025b60ae4779cc73c1535eb5f29560b10", + "https://files.pythonhosted.org/packages/4d/f5/33f05dc3ba10a02dedb1485870cf81c109227d3d3aa280f0e48486cac248/greenlet-3.2.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "27890167f55d2387576d1f41d9487ef171849ea0359ce1510ca6e06c8bece11d", + "https://files.pythonhosted.org/packages/5d/65/deb2a69c3e5996439b0176f6651e0052542bb6c8f8ec2e3fba97c9768805/greenlet-3.2.4-cp311-cp311-musllinux_1_1_aarch64.whl": "1987de92fec508535687fb807a5cea1560f6196285a4cde35c100b8cd632cc52", + "https://files.pythonhosted.org/packages/5f/d3/844e714a9bbd39034144dca8b658dcd01839b72bb0ec7d8014e33e3705f0/greenlet-3.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "16458c245a38991aa19676900d48bd1a6f2ce3e16595051a4db9d012154e8433", + "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", + "https://files.pythonhosted.org/packages/66/71/1928e2c80197353bcb9b50aa19c4d8e26ee6d7a900c564907665cf4b9a41/greenlet-3.2.4-cp39-cp39-musllinux_1_1_x86_64.whl": "81701fd84f26330f0d5f4944d4e92e61afe6319dcd9775e39396e39d7c3e5f98", + "https://files.pythonhosted.org/packages/67/24/28a5b2fa42d12b3d7e5614145f0bd89714c34c08be6aabe39c14dd52db34/greenlet-3.2.4-cp311-cp311-musllinux_1_2_aarch64.whl": "c9c6de1940a7d828635fbd254d69db79e54619f165ee7ce32fda763a9cb6a58c", + "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", + "https://files.pythonhosted.org/packages/69/02/b7c30e5e04752cb4db6202a3858b149c0710e5453b71a3b2aec5d78a1aab/greenlet-3.2.4-cp312-cp312-musllinux_1_2_x86_64.whl": "326d234cbf337c9c3def0676412eb7040a35a768efc92504b947b3e9cfc7543d", + "https://files.pythonhosted.org/packages/6a/05/03f2f0bdd0b0ff9a4f7b99333d57b53a7709c27723ec8123056b084e69cd/greenlet-3.2.4-cp311-cp311-musllinux_1_2_x86_64.whl": "03c5136e7be905045160b1b9fdca93dd6727b180feeafda6818e6496434ed8c5", + "https://files.pythonhosted.org/packages/6b/4c/f3de2a8de0e840ecb0253ad0dc7e2bb3747348e798ec7e397d783a3cb380/greenlet-3.2.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl": "c9913f1a30e4526f432991f89ae263459b1c64d1608c0d22a5c79c287b3c70df", + "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl": "44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", + "https://files.pythonhosted.org/packages/7d/ed/6bfa4109fcb23a58819600392564fea69cdc6551ffd5e69ccf1d52a40cbc/greenlet-3.2.4-cp310-cp310-macosx_11_0_universal2.whl": "8c68325b0d0acf8d91dde4e6f930967dd52a5302cd4062932a6b2e7c2969f47c", + "https://files.pythonhosted.org/packages/7f/3b/3a3328a788d4a473889a2d403199932be55b1b0060f4ddd96ee7cdfcad10/greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504", + "https://files.pythonhosted.org/packages/7f/91/ae2eb6b7979e2f9b035a9f612cf70f1bf54aad4e1d125129bef1eae96f19/greenlet-3.2.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl": "c2ca18a03a8cfb5b25bc1cbe20f3d9a4c80d8c3b13ba3df49ac3961af0b1018d", + "https://files.pythonhosted.org/packages/89/48/a5dc74dde38aeb2b15d418cec76ed50e1dd3d620ccda84d8199703248968/greenlet-3.2.4-cp39-cp39-win32.whl": "65458b409c1ed459ea899e939f0e1cdb14f58dbc803f2f93c5eab5694d32671b", + "https://files.pythonhosted.org/packages/89/80/7332915adc766035c8980b161c2e5d50b2f941f453af232c164cff5e0aeb/greenlet-3.2.4-cp39-cp39-musllinux_1_1_aarch64.whl": "b90654e092f928f110e0007f572007c9727b5265f7632c2fa7415b4689351594", + "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl": "abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", + "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", + "https://files.pythonhosted.org/packages/9b/74/4bc433f91d0d09a1c22954a371f9df928cb85e72640870158853a83415e5/greenlet-3.2.4-cp39-cp39-musllinux_1_2_x86_64.whl": "52206cd642670b0b320a1fd1cbfd95bca0e043179c1d8a045f2c6109dfe973be", + "https://files.pythonhosted.org/packages/9f/7c/e7833dbcd8f376f3326bd728c845d31dcde4c84268d3921afcae77d90d08/greenlet-3.2.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl": "c8c9e331e58180d0d83c5b7999255721b725913ff6bc6cf39fa2a45841a4fd4b", + "https://files.pythonhosted.org/packages/a1/8d/88f3ebd2bc96bf7747093696f4335a0a8a4c5acfcf1b757717c0d2474ba3/greenlet-3.2.4-cp310-cp310-musllinux_1_1_x86_64.whl": "8854167e06950ca75b898b104b63cc646573aa5fef1353d4508ecdd1ee76254f", + "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl": "d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", + "https://files.pythonhosted.org/packages/a4/de/f28ced0a67749cac23fecb02b694f6473f47686dff6afaa211d186e2ef9c/greenlet-3.2.4-cp311-cp311-macosx_11_0_universal2.whl": "96378df1de302bc38e99c3a9aa311967b7dc80ced1dcc6f171e99842987882a2", + "https://files.pythonhosted.org/packages/ae/8f/95d48d7e3d433e6dae5b1682e4292242a53f22df82e6d3dda81b1701a960/greenlet-3.2.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "94abf90142c2a18151632371140b3dba4dee031633fe614cb592dbb6c9e17bc3", + "https://files.pythonhosted.org/packages/b2/a7/9476decef51a0844195f99ed5dc611d212e9b3515512ecdf7321543a7225/greenlet-3.2.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "18d9260df2b5fbf41ae5139e1be4e796d99655f023a636cd0e11e6406cca7d58", + "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl": "00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", + "https://files.pythonhosted.org/packages/bd/e0/849b9159cbb176f8c0af5caaff1faffdece7a8417fcc6fe1869770e33e21/greenlet-3.2.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl": "671df96c1f23c4a0d4077a325483c1503c96a1b7d9db26592ae770daa41233d4", + "https://files.pythonhosted.org/packages/c0/aa/687d6b12ffb505a4447567d1f3abea23bd20e73a5bed63871178e0831b7a/greenlet-3.2.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "c17b6b34111ea72fc5a4e4beec9711d2226285f0386ea83477cbb97c30a3f3a5", + "https://files.pythonhosted.org/packages/c5/26/80383131d55a4ac0fb08d71660fd77e7660b9db6bdb4e8884f46d9f2cc04/greenlet-3.2.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "f10fd42b5ee276335863712fa3da6608e93f70629c631bf77145021600abc23c", + "https://files.pythonhosted.org/packages/c8/e2/1572b8eeab0f77df5f6729d6ab6b141e4a84ee8eb9bc8c1e7918f94eda6d/greenlet-3.2.4-cp310-cp310-musllinux_1_2_x86_64.whl": "af41be48a4f60429d5cad9d22175217805098a9ef7c40bfef44f7669fb9d74d8", + "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": "299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", + "https://files.pythonhosted.org/packages/d5/5e/405965351aef8c76b8ef7ad370e5da58d57ef6068df197548b015464001a/greenlet-3.2.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl": "4d1378601b85e2e5171b99be8d2dc85f594c79967599328f95c1dc1a40f1c633", + "https://files.pythonhosted.org/packages/d6/6f/b60b0291d9623c496638c582297ead61f43c4b72eef5e9c926ef4565ec13/greenlet-3.2.4-cp310-cp310-win_amd64.whl": "73f49b5368b5359d04e18d15828eecc1806033db5233397748f4ca813ff1056c", + "https://files.pythonhosted.org/packages/d8/0f/30aef242fcab550b0b3520b8e3561156857c94288f0332a79928c31a52cf/greenlet-3.2.4-cp311-cp311-win_amd64.whl": "9c40adce87eaa9ddb593ccb0fa6a07caf34015a29bf8d344811665b573138db9", + "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl": "b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", + "https://files.pythonhosted.org/packages/e3/a5/6ddab2b4c112be95601c13428db1d8b6608a8b6039816f2ba09c346c08fc/greenlet-3.2.4-cp314-cp314-win_amd64.whl": "e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01", + "https://files.pythonhosted.org/packages/e5/44/342c4591db50db1076b8bda86ed0ad59240e3e1da17806a4cf10a6d0e447/greenlet-3.2.4-cp39-cp39-win_amd64.whl": "d2e685ade4dafd447ede19c31277a224a239a0a1a4eca4e6390efedf20260cfb", + "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl": "a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", + "https://files.pythonhosted.org/packages/e9/49/547b93b7c0428ede7b3f309bc965986874759f7d89e4e04aeddbc9699acb/greenlet-3.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": "58b97143c9cc7b86fc458f215bd0932f1757ce649e05b640fea2e79b54cedb31", + "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl": "23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", + "https://files.pythonhosted.org/packages/f1/29/74242b7d72385e29bcc5563fba67dad94943d7cd03552bac320d597f29b2/greenlet-3.2.4-cp310-cp310-musllinux_1_2_aarch64.whl": "f47617f698838ba98f4ff4189aef02e7343952df3a615f847bb575c3feb177a7", + "https://files.pythonhosted.org/packages/f2/d6/6adde57d1345a8d0f14d31e4ab9c23cfe8e2cd39c3baf7674b4b0338d266/greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl": "c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a", + "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": "710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", + "https://files.pythonhosted.org/packages/f7/85/433de0c9c0252b22b16d413c9407e6cb3b41df7389afc366ca204dbc1393/greenlet-3.2.4-cp310-cp310-musllinux_1_1_aarch64.whl": "9fe0a28a7b952a21e2c062cd5756d34354117796c6d9215a87f55e38d15402c5", + "https://files.pythonhosted.org/packages/f7/c0/93885c4106d2626bf51fdec377d6aef740dfa5c4877461889a7cf8e565cc/greenlet-3.2.4-cp39-cp39-macosx_11_0_universal2.whl": "b6a7c19cf0d2742d0809a4c05975db036fdff50cd294a93632d6a310bf9ac02c" + }, + "hyperlink": { + "https://files.pythonhosted.org/packages/3a/51/1947bd81d75af87e3bb9e34593a4cf118115a8feb451ce7a69044ef1412e/hyperlink-21.0.0.tar.gz": "427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b", + "https://files.pythonhosted.org/packages/6e/aa/8caf6a0a3e62863cbb9dab27135660acba46903b703e224f14f447e57934/hyperlink-21.0.0-py2.py3-none-any.whl": "e6b14c37ecb73e89c77d78cdb4c2cc8f3fb59a885c5b3f819ff4ed80f25af1b4" + }, + "idna": { + "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", + "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz": "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" + }, + "importlib-metadata": { + "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl": "e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", + "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz": "d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", + "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl": "45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", + "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz": "71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7" + }, + "incremental": { + "https://files.pythonhosted.org/packages/0d/38/221e5b2ae676a3938c2c1919131410c342b6efc2baffeda395dd66eeca8f/incremental-24.7.2-py3-none-any.whl": "8cb2c3431530bec48ad70513931a760f446ad6c25e8333ca5d95e24b0ed7b8fe", + "https://files.pythonhosted.org/packages/27/87/156b374ff6578062965afe30cc57627d35234369b3336cf244b240c8d8e6/incremental-24.7.2.tar.gz": "fb4f1d47ee60efe87d4f6f0ebb5f70b9760db2b2574c59c8e8912be4ebd464c9" + }, + "jaraco-classes": { + "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz": "47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", + "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl": "f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790" + }, + "jaraco-context": { + "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz": "9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", + "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl": "f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4" + }, + "jaraco-functools": { + "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl": "227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", + "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz": "cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294" + }, + "jeepney": { + "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz": "cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", + "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl": "97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683" + }, + "jinja2": { + "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", + "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz": "4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369" + }, + "keyring": { + "https://files.pythonhosted.org/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz": "0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66", + "https://files.pythonhosted.org/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl": "552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd" + }, + "markdown-it-py": { + "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz": "cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", + "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl": "87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147" + }, + "markupsafe": { + "https://files.pythonhosted.org/packages/00/0b/23f4b2470accb53285c613a3ab9ec19dc944eaf53592cb6d9e2af8aa24cc/MarkupSafe-2.1.5-cp311-cp311-win32.whl": "397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906", + "https://files.pythonhosted.org/packages/02/8c/ab9a463301a50dab04d5472e998acbd4080597abc048166ded5c7aa768c8/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl": "5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6", + "https://files.pythonhosted.org/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", + "https://files.pythonhosted.org/packages/0a/7b/85681ae3c33c385b10ac0f8dd025c30af83c78cec1c37a6aa3b55e67f5ec/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46", + "https://files.pythonhosted.org/packages/0b/cc/48206bd61c5b9d0129f4d75243b156929b04c94c09041321456fd06a876d/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl": "bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e", + "https://files.pythonhosted.org/packages/0c/40/2e73e7d532d030b1e41180807a80d564eda53babaf04d65e15c1cf897e40/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c", + "https://files.pythonhosted.org/packages/0e/7d/968284145ffd9d726183ed6237c77938c021abacde4e073020f920e060b2/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl": "8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3", + "https://files.pythonhosted.org/packages/0f/31/780bb297db036ba7b7bbede5e1d7f1e14d704ad4beb3ce53fb495d22bc62/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl": "7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf", + "https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl": "629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f", + "https://files.pythonhosted.org/packages/18/46/5dca760547e8c59c5311b332f70605d24c99d1303dd9a6e1fc3ed0d73561/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl": "0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f", + "https://files.pythonhosted.org/packages/1c/cf/35fe557e53709e93feb65575c93927942087e9b97213eabc3fe9d5b25a55/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced", + "https://files.pythonhosted.org/packages/29/fe/a36ba8c7ca55621620b2d7c585313efd10729e63ef81e4e61f52330da781/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900", + "https://files.pythonhosted.org/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", + "https://files.pythonhosted.org/packages/2f/69/30d29adcf9d1d931c75001dd85001adad7374381c9c2086154d9f6445be6/MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl": "7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9", + "https://files.pythonhosted.org/packages/30/39/8d845dd7d0b0613d86e0ef89549bfb5f61ed781f59af45fc96496e897f3a/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl": "fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd", + "https://files.pythonhosted.org/packages/3a/03/63498d05bd54278b6ca340099e5b52ffb9cdf2ee4f2d9b98246337e21689/MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl": "2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df", + "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl": "823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", + "https://files.pythonhosted.org/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl": "3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", + "https://files.pythonhosted.org/packages/4a/1d/c4f5016f87ced614eacc7d5fb85b25bcc0ff53e8f058d069fc8cbfdc3c7a/MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a", + "https://files.pythonhosted.org/packages/4c/6f/f2b0f675635b05f6afd5ea03c094557bdb8622fa8e673387444fe8d8e787/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68", + "https://files.pythonhosted.org/packages/4f/14/6f294b9c4f969d0c801a4615e221c1e084722ea6114ab2114189c5b8cbe0/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl": "97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46", + "https://files.pythonhosted.org/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", + "https://files.pythonhosted.org/packages/51/e0/393467cf899b34a9d3678e78961c2c8cdf49fb902a959ba54ece01273fb1/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl": "5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0", + "https://files.pythonhosted.org/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl": "8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", + "https://files.pythonhosted.org/packages/5f/5a/360da85076688755ea0cceb92472923086993e86b5613bbae9fbc14136b0/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", + "https://files.pythonhosted.org/packages/60/ae/9c60231cdfda003434e8bd27282b1f4e197ad5a710c14bee8bea8a9ca4f0/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl": "075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff", + "https://files.pythonhosted.org/packages/65/dc/1510be4d179869f5dafe071aecb3f1f41b45d37c02329dfba01ff59e5ac5/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl": "598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad", + "https://files.pythonhosted.org/packages/68/79/11b4fe15124692f8673b603433e47abca199a08ecd2a4851bfbdc97dc62d/MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl": "ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50", + "https://files.pythonhosted.org/packages/69/48/acbf292615c65f0604a0c6fc402ce6d8c991276e16c80c46a8f758fbd30c/MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl": "bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5", + "https://files.pythonhosted.org/packages/6a/18/ae5a258e3401f9b8312f92b028c54d7026a97ec3ab20bfaddbdfa7d8cce8/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465", + "https://files.pythonhosted.org/packages/6a/4a/a4d49415e600bacae038c67f9fecc1d5433b9d3c71a4de6f33537b89654c/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl": "72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5", + "https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl": "5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2", + "https://files.pythonhosted.org/packages/6c/4c/3577a52eea1880538c435176bc85e5b3379b7ab442327ccd82118550758f/MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl": "4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2", + "https://files.pythonhosted.org/packages/6c/77/d77701bbef72892affe060cdacb7a2ed7fd68dae3b477a8642f15ad3b132/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl": "db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2", + "https://files.pythonhosted.org/packages/6d/c5/27febe918ac36397919cd4a67d5579cbbfa8da027fa1238af6285bb368ea/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl": "c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a", + "https://files.pythonhosted.org/packages/7c/52/2b1b570f6b8b803cef5ac28fdf78c0da318916c7d2fe9402a84d591b394c/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", + "https://files.pythonhosted.org/packages/81/d4/fd74714ed30a1dedd0b82427c02fa4deec64f173831ec716da11c51a50aa/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532", + "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz": "d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", + "https://files.pythonhosted.org/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl": "58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", + "https://files.pythonhosted.org/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl": "bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", + "https://files.pythonhosted.org/packages/92/21/357205f03514a49b293e214ac39de01fadd0970a6e05e4bf1ddd0ffd0881/MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl": "619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029", + "https://files.pythonhosted.org/packages/96/0c/620c1fb3661858c0e37eb3cbffd8c6f732a67cd97296f725789679801b31/MarkupSafe-2.1.5-cp312-cp312-win32.whl": "8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad", + "https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5", + "https://files.pythonhosted.org/packages/a7/88/a940e11827ea1c136a34eca862486178294ae841164475b9ab216b80eb8e/MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl": "c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f", + "https://files.pythonhosted.org/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl": "d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", + "https://files.pythonhosted.org/packages/b3/fb/c18b8c9fbe69e347fdbf782c6478f1bc77f19a830588daa224236678339b/MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52", + "https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl": "2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617", + "https://files.pythonhosted.org/packages/bc/29/9bc18da763496b055d8e98ce476c8e718dcfd78157e17f555ce6dd7d0895/MarkupSafe-2.1.5-cp39-cp39-win32.whl": "00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf", + "https://files.pythonhosted.org/packages/bf/f3/ecb00fc8ab02b7beae8699f34db9357ae49d9f21d4d3de6f305f34fa949e/MarkupSafe-2.1.5-cp38-cp38-win32.whl": "daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff", + "https://files.pythonhosted.org/packages/c7/5c/356a6f62e4f3c5fbf2602b4771376af22a3b16efa74eb8716fb4e328e01e/MarkupSafe-2.1.5-cp310-cp310-win32.whl": "d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4", + "https://files.pythonhosted.org/packages/c7/bd/50319665ce81bb10e90d1cf76f9e1aa269ea6f7fa30ab4521f14d122a3df/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab", + "https://files.pythonhosted.org/packages/cb/06/0d28bd178db529c5ac762a625c335a9168a7a23f280b4db9c95e97046145/MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf", + "https://files.pythonhosted.org/packages/d1/06/a41c112ab9ffdeeb5f77bc3e331fdadf97fa65e52e44ba31880f4e7f983c/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl": "bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea", + "https://files.pythonhosted.org/packages/d9/a7/1e558b4f78454c8a3a0199292d96159eb4d091f983bc35ef258314fe7269/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8", + "https://files.pythonhosted.org/packages/e4/54/ad5eb37bf9d51800010a74e4665425831a9db4e7c4e0fde4352e391e808e/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl": "a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc", + "https://files.pythonhosted.org/packages/ed/88/408bdbf292eb86f03201c17489acafae8358ba4e120d92358308c15cea7c/MarkupSafe-2.1.5-cp37-cp37m-win32.whl": "4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371", + "https://files.pythonhosted.org/packages/f6/02/5437e2ad33047290dafced9df741d9efc3e716b75583bbd73a9984f1b6f7/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl": "30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4", + "https://files.pythonhosted.org/packages/f6/f8/4da07de16f10551ca1f640c92b5f316f9394088b183c6a57183df6de5ae4/MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl": "fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5", + "https://files.pythonhosted.org/packages/f8/81/56e567126a2c2bc2684d6391332e357589a96a76cb9f8e5052d85cb0ead8/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl": "3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", + "https://files.pythonhosted.org/packages/f8/ff/2c942a82c35a49df5de3a630ce0a8456ac2969691b230e530ac12314364c/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl": "656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a" + }, + "mdurl": { + "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz": "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" + }, + "more-itertools": { + "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl": "52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", + "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz": "f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd" + }, + "nh3": { + "https://files.pythonhosted.org/packages/0c/e0/cf1543e798ba86d838952e8be4cb8d18e22999be2a24b112a671f1c04fd6/nh3-0.3.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl": "ec6cfdd2e0399cb79ba4dcffb2332b94d9696c52272ff9d48a630c5dca5e325a", + "https://files.pythonhosted.org/packages/10/71/2fb1834c10fab6d9291d62c95192ea2f4c7518bd32ad6c46aab5d095cb87/nh3-0.3.0-cp313-cp313t-musllinux_1_2_i686.whl": "0649464ac8eee018644aacbc103874ccbfac80e3035643c3acaab4287e36e7f5", + "https://files.pythonhosted.org/packages/23/1e/80a8c517655dd40bb13363fc4d9e66b2f13245763faab1a20f1df67165a7/nh3-0.3.0-cp313-cp313t-win_amd64.whl": "423201bbdf3164a9e09aa01e540adbb94c9962cc177d5b1cbb385f5e1e79216e", + "https://files.pythonhosted.org/packages/2f/d6/f1c6e091cbe8700401c736c2bc3980c46dca770a2cf6a3b48a175114058e/nh3-0.3.0-cp313-cp313t-win32.whl": "7275fdffaab10cc5801bf026e3c089d8de40a997afc9e41b981f7ac48c5aa7d5", + "https://files.pythonhosted.org/packages/33/c1/8f8ccc2492a000b6156dce68a43253fcff8b4ce70ab4216d08f90a2ac998/nh3-0.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl": "1adeb1062a1c2974bc75b8d1ecb014c5fd4daf2df646bbe2831f7c23659793f9", + "https://files.pythonhosted.org/packages/39/2c/6394301428b2017a9d5644af25f487fa557d06bc8a491769accec7524d9a/nh3-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "f416c35efee3e6a6c9ab7716d9e57aa0a49981be915963a82697952cba1353e1", + "https://files.pythonhosted.org/packages/4c/3c/cba7b26ccc0ef150c81646478aa32f9c9535234f54845603c838a1dc955c/nh3-0.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl": "80fe20171c6da69c7978ecba33b638e951b85fb92059259edd285ff108b82a6d", + "https://files.pythonhosted.org/packages/4e/9a/344b9f9c4bd1c2413a397f38ee6a3d5db30f1a507d4976e046226f12b297/nh3-0.3.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl": "37d3003d98dedca6cd762bf88f2e70b67f05100f6b949ffe540e189cc06887f9", + "https://files.pythonhosted.org/packages/5b/76/3165e84e5266d146d967a6cc784ff2fbf6ddd00985a55ec006b72bc39d5d/nh3-0.3.0-cp38-abi3-win_arm64.whl": "d97d3efd61404af7e5721a0e74d81cdbfc6e5f97e11e731bb6d090e30a7b62b2", + "https://files.pythonhosted.org/packages/5c/86/a96b1453c107b815f9ab8fac5412407c33cc5c7580a4daf57aabeb41b774/nh3-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "ce5e7185599f89b0e391e2f29cc12dc2e206167380cea49b33beda4891be2fe1", + "https://files.pythonhosted.org/packages/63/da/c5fd472b700ba37d2df630a9e0d8cc156033551ceb8b4c49cc8a5f606b68/nh3-0.3.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl": "ba0caa8aa184196daa6e574d997a33867d6d10234018012d35f86d46024a2a95", + "https://files.pythonhosted.org/packages/66/3f/cd37f76c8ca277b02a84aa20d7bd60fbac85b4e2cbdae77cb759b22de58b/nh3-0.3.0-cp38-abi3-musllinux_1_2_aarch64.whl": "634e34e6162e0408e14fb61d5e69dbaea32f59e847cfcfa41b66100a6b796f62", + "https://files.pythonhosted.org/packages/6a/1b/b15bd1ce201a1a610aeb44afd478d55ac018b4475920a3118ffd806e2483/nh3-0.3.0-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl": "e9e6a7e4d38f7e8dda9edd1433af5170c597336c1a74b4693c5cb75ab2b30f2a", + "https://files.pythonhosted.org/packages/8c/ae/324b165d904dc1672eee5f5661c0a68d4bab5b59fbb07afb6d8d19a30b45/nh3-0.3.0-cp38-abi3-win_amd64.whl": "bae63772408fd63ad836ec569a7c8f444dd32863d0c67f6e0b25ebbd606afa95", + "https://files.pythonhosted.org/packages/8f/14/079670fb2e848c4ba2476c5a7a2d1319826053f4f0368f61fca9bb4227ae/nh3-0.3.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl": "7852f038a054e0096dac12b8141191e02e93e0b4608c4b993ec7d4ffafea4e49", + "https://files.pythonhosted.org/packages/97/03/03f79f7e5178eb1ad5083af84faff471e866801beb980cc72943a4397368/nh3-0.3.0-cp38-abi3-musllinux_1_2_i686.whl": "c7a32a7f0d89f7d30cb8f4a84bdbd56d1eb88b78a2434534f62c71dac538c450", + "https://files.pythonhosted.org/packages/97/33/11e7273b663839626f714cb68f6eb49899da5a0d9b6bc47b41fe870259c2/nh3-0.3.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl": "389d93d59b8214d51c400fb5b07866c2a4f79e4e14b071ad66c92184fec3a392", + "https://files.pythonhosted.org/packages/9a/e0/af86d2a974c87a4ba7f19bc3b44a8eaa3da480de264138fec82fe17b340b/nh3-0.3.0-cp313-cp313t-win_arm64.whl": "16f8670201f7e8e0e05ed1a590eb84bfa51b01a69dd5caf1d3ea57733de6a52f", + "https://files.pythonhosted.org/packages/a3/e5/ac7fc565f5d8bce7f979d1afd68e8cb415020d62fa6507133281c7d49f91/nh3-0.3.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl": "af5aa8127f62bbf03d68f67a956627b1bd0469703a35b3dad28d0c1195e6c7fb", + "https://files.pythonhosted.org/packages/ad/7f/7c6b8358cf1222921747844ab0eef81129e9970b952fcb814df417159fb9/nh3-0.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "7c915060a2c8131bef6a29f78debc29ba40859b6dbe2362ef9e5fd44f11487c2", + "https://files.pythonhosted.org/packages/b4/11/340b7a551916a4b2b68c54799d710f86cf3838a4abaad8e74d35360343bb/nh3-0.3.0-cp313-cp313t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl": "a537ece1bf513e5a88d8cff8a872e12fe8d0f42ef71dd15a5e7520fecd191bbb", + "https://files.pythonhosted.org/packages/c3/a4/96cff0977357f60f06ec4368c4c7a7a26cccfe7c9fcd54f5378bf0428fd3/nh3-0.3.0.tar.gz": "d8ba24cb31525492ea71b6aac11a4adac91d828aadeff7c4586541bf5dc34d2f", + "https://files.pythonhosted.org/packages/c9/50/76936ec021fe1f3270c03278b8af5f2079038116b5d0bfe8538ffe699d69/nh3-0.3.0-cp38-abi3-win32.whl": "6d68fa277b4a3cf04e5c4b84dd0c6149ff7d56c12b3e3fab304c525b850f613d", + "https://files.pythonhosted.org/packages/ce/55/1974bcc16884a397ee699cebd3914e1f59be64ab305533347ca2d983756f/nh3-0.3.0-cp38-abi3-musllinux_1_2_x86_64.whl": "3f1b4f8a264a0c86ea01da0d0c390fe295ea0bcacc52c2103aca286f6884f518", + "https://files.pythonhosted.org/packages/ee/db/7aa11b44bae4e7474feb1201d8dee04fabe5651c7cb51409ebda94a4ed67/nh3-0.3.0-cp38-abi3-musllinux_1_2_armv7l.whl": "b0612ccf5de8a480cf08f047b08f9d3fecc12e63d2ee91769cb19d7290614c23", + "https://files.pythonhosted.org/packages/f3/ba/59e204d90727c25b253856e456ea61265ca810cda8ee802c35f3fadaab00/nh3-0.3.0-cp313-cp313t-musllinux_1_2_armv7l.whl": "e90883f9f85288f423c77b3f5a6f4486375636f25f793165112679a7b6363b35" + }, + "opentelemetry-api": { + "https://files.pythonhosted.org/packages/2b/6d/bbbf879826b7f3c89a45252010b5796fb1f1a0d45d9dc4709db0ef9a06c8/opentelemetry_api-1.30.0.tar.gz": "375893400c1435bf623f7dfb3bcd44825fe6b56c34d0667c542ea8257b1a1240", + "https://files.pythonhosted.org/packages/36/0a/eea862fae6413d8181b23acf8e13489c90a45f17986ee9cf4eab8a0b9ad9/opentelemetry_api-1.30.0-py3-none-any.whl": "d5f5284890d73fdf47f843dda3210edf37a38d66f44f2b5aedc1e89ed455dc09" + }, + "opentelemetry-exporter-prometheus": { + "https://files.pythonhosted.org/packages/36/6d/2a56355c00a8e225b0bbb85f2ca2e8fe963270d4314f9dee4576e49492fa/opentelemetry_exporter_prometheus-0.51b0.tar.gz": "25673d79d3b0b864133ee8df789fc6fb408c51e64b3cb775c20526c10bb93d05", + "https://files.pythonhosted.org/packages/6f/83/e2f5b986641cc13bae727598480d463140a2e1930c1bedb23ab60aea250c/opentelemetry_exporter_prometheus-0.51b0-py3-none-any.whl": "5c5c45b254e08c19564ab033f44a941a07fb6a33ea441b75ad203c70997a8f25" + }, + "opentelemetry-resourcedetector-gcp": { + "https://files.pythonhosted.org/packages/12/04/7e33228c88422a5518e1774a836c9ec68f10f51bde0f1d5dd5f3054e612a/opentelemetry_resourcedetector_gcp-1.9.0a0-py3-none-any.whl": "4e5a0822b0f0d7647b7ceb282d7aa921dd7f45466540bd0a24f954f90db8fde8", + "https://files.pythonhosted.org/packages/e1/86/f0693998817779802525a5bcc885a3cdb68d05b636bc6faae5c9ade4bee4/opentelemetry_resourcedetector_gcp-1.9.0a0.tar.gz": "6860a6649d1e3b9b7b7f09f3918cc16b72aa0c0c590d2a72ea6e42b67c9a42e7" + }, + "opentelemetry-sdk": { + "https://files.pythonhosted.org/packages/93/ee/d710062e8a862433d1be0b85920d0c653abe318878fef2d14dfe2c62ff7b/opentelemetry_sdk-1.30.0.tar.gz": "c9287a9e4a7614b9946e933a67168450b9ab35f08797eb9bc77d998fa480fa18", + "https://files.pythonhosted.org/packages/97/28/64d781d6adc6bda2260067ce2902bd030cf45aec657e02e28c5b4480b976/opentelemetry_sdk-1.30.0-py3-none-any.whl": "14fe7afc090caad881addb6926cec967129bd9260c4d33ae6a217359f6b61091" + }, + "opentelemetry-semantic-conventions": { + "https://files.pythonhosted.org/packages/1e/c0/0f9ef4605fea7f2b83d55dd0b0d7aebe8feead247cd6facd232b30907b4f/opentelemetry_semantic_conventions-0.51b0.tar.gz": "3fabf47f35d1fd9aebcdca7e6802d86bd5ebc3bc3408b7e3248dde6e87a18c47", + "https://files.pythonhosted.org/packages/2e/75/d7bdbb6fd8630b4cafb883482b75c4fc276b6426619539d266e32ac53266/opentelemetry_semantic_conventions-0.51b0-py3-none-any.whl": "fdc777359418e8d06c86012c3dc92c88a6453ba662e941593adb062e48c2eeae" + }, + "pkginfo": { + "https://files.pythonhosted.org/packages/24/03/e26bf3d6453b7fda5bd2b84029a426553bb373d6277ef6b5ac8863421f87/pkginfo-1.12.1.2.tar.gz": "5cd957824ac36f140260964eba3c6be6442a8359b8c48f4adf90210f33a04b7b", + "https://files.pythonhosted.org/packages/fa/3d/f4f2ba829efb54b6cd2d91349c7463316a9cc55a43fc980447416c88540f/pkginfo-1.12.1.2-py3-none-any.whl": "c783ac885519cab2c34927ccfa6bf64b5a704d7c69afaea583dd9b7afe969343" + }, + "prometheus-client": { + "https://files.pythonhosted.org/packages/62/14/7d0f567991f3a9af8d1cd4f619040c93b68f09a02b6d0b6ab1b2d1ded5fe/prometheus_client-0.21.1.tar.gz": "252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb", + "https://files.pythonhosted.org/packages/ff/c2/ab7d37426c179ceb9aeb109a85cda8948bb269b7561a0be870cc656eefe4/prometheus_client-0.21.1-py3-none-any.whl": "594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301" + }, + "protobuf": { + "https://files.pythonhosted.org/packages/04/52/c97c58a33b3d6c89a8138788576d372a90a6556f354799971c6b4d16d871/protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl": "8ee1461b3af56145aca2800e6a3e2f928108c749ba8feccc6f5dd0062c410c0d", + "https://files.pythonhosted.org/packages/08/60/84d5f6dcda9165e4d6a56ac8433c9f40a8906bf2966150b8a0cfde097d78/protobuf-6.33.5-cp39-cp39-win32.whl": "a3157e62729aafb8df6da2c03aa5c0937c7266c626ce11a278b6eb7963c4e37c", + "https://files.pythonhosted.org/packages/24/67/8bc07bb755c8badf08db4a8bc2eb542a4e733135a6d584d1922b701d7751/protobuf-5.29.1-cp39-cp39-win_amd64.whl": "012ce28d862ff417fd629285aca5d9772807f15ceb1a0dbd15b88f58c776c98c", + "https://files.pythonhosted.org/packages/3b/24/c8c49df8f6587719e1d400109b16c10c6902d0c9adddc8fff82840146f99/protobuf-5.29.1-py3-none-any.whl": "32600ddb9c2a53dedc25b8581ea0f1fd8ea04956373c0c07577ce58d312522e0", + "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl": "9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", + "https://files.pythonhosted.org/packages/50/c7/28669b04691a376cf7d0617d612f126aa0fff763d57df0142f9bf474c5b8/protobuf-5.29.1-cp310-abi3-win32.whl": "22c1f539024241ee545cbcb00ee160ad1877975690b16656ff87dde107b5f110", + "https://files.pythonhosted.org/packages/53/da/586cd4b2e45a2b81e5c9e5d8eb1d726fa78a7f87761fb67e2d7b276cdbeb/protobuf-5.29.1-cp38-cp38-win32.whl": "50879eb0eb1246e3a5eabbbe566b44b10348939b7cc1b267567e8c3d07213853", + "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl": "3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", + "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl": "69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", + "https://files.pythonhosted.org/packages/68/19/33d7dc2dc84439587fa1e21e1c0026c01ad2af0a62f58fd54002a7546307/protobuf-6.33.5-cp39-cp39-win_amd64.whl": "8f04fa32763dcdb4973d537d6b54e615cc61108c7cb38fe59310c3192d29510a", + "https://files.pythonhosted.org/packages/98/50/5514a7a590be0e8883ed2c23c0ea928c5069cc5737f09893ae76f93ddcde/protobuf-5.29.1-cp38-cp38-win_amd64.whl": "027fbcc48cea65a6b17028510fdd054147057fa78f4772eb547b9274e5219331", + "https://files.pythonhosted.org/packages/99/19/5a3957e08de18578131810563ccfeebc7d2aad31ee52e367a61f56cc3cab/protobuf-5.29.1-cp39-cp39-win32.whl": "5a41deccfa5e745cef5c65a560c76ec0ed8e70908a67cc8f4da5fce588b50d57", + "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl": "cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", + "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl": "a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", + "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl": "d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", + "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz": "6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", + "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl": "8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", + "https://files.pythonhosted.org/packages/d2/4f/1639b7b1633d8fd55f216ba01e21bf2c43384ab25ef3ddb35d85a52033e8/protobuf-5.29.1.tar.gz": "683be02ca21a6ffe80db6dd02c0b5b2892322c59ca57fd6c872d652cb80549cb", + "https://files.pythonhosted.org/packages/e3/33/dc7a7712f457456b7e0b16420ab8ba1cc8686751d3f28392eb43d0029ab9/protobuf-5.29.1-cp310-abi3-win_amd64.whl": "1fc55267f086dd4050d18ef839d7bd69300d0d08c2a53ca7df3920cc271a3c34", + "https://files.pythonhosted.org/packages/e5/39/44239fb1c6ec557e1731d996a5de89a9eb1ada7a92491fcf9c5d714052ed/protobuf-5.29.1-cp38-abi3-macosx_10_9_universal2.whl": "d473655e29c0c4bbf8b69e9a8fb54645bc289dead6d753b952e7aa660254ae18", + "https://files.pythonhosted.org/packages/fb/4a/ec56f101d38d4bef2959a9750209809242d86cf8b897db00f2f98bfa360e/protobuf-5.29.1-cp38-abi3-manylinux2014_aarch64.whl": "b5ba1d0e4c8a40ae0496d0e2ecfdbb82e1776928a205106d14ad6985a09ec155" + }, + "pyasn1": { + "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz": "6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", + "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl": "0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629" + }, + "pyasn1-modules": { + "https://files.pythonhosted.org/packages/1d/67/6afbf0d507f73c32d21084a79946bfcfca5fbc62a72057e9c23797a737c9/pyasn1_modules-0.4.1.tar.gz": "c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c", + "https://files.pythonhosted.org/packages/77/89/bc88a6711935ba795a679ea6ebee07e128050d6382eaa35a0a47c8032bdc/pyasn1_modules-0.4.1-py3-none-any.whl": "49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd" + }, + "pycparser": { + "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl": "e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", + "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz": "78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2" + }, + "pygments": { + "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz": "636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", + "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl": "86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b" + }, + "pywin32-ctypes": { + "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz": "d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", + "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl": "8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8" + }, + "pyyaml": { + "https://files.pythonhosted.org/packages/02/72/d972384252432d57f248767556ac083793292a4adf4e2d85dfe785ec2659/PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4", + "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", + "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl": "02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", + "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz": "d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", + "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl": "8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", + "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", + "https://files.pythonhosted.org/packages/0d/a2/09f67a3589cb4320fb5ce90d3fd4c9752636b8b6ad8f34b54d76c5a54693/PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl": "c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f", + "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", + "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl": "652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", + "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl": "64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", + "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl": "5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", + "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl": "4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", + "https://files.pythonhosted.org/packages/25/a2/b725b61ac76a75583ae7104b3209f75ea44b13cfd026aa535ece22b7f22e/PyYAML-6.0.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6", + "https://files.pythonhosted.org/packages/29/3d/6f5e0d58bd924fb0d06c3a6bad00effbdae2de5adb5cda5648006ffbd8d3/pyyaml-6.0.3-cp39-cp39-win32.whl": "1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0", + "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl": "bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", + "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", + "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl": "eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", + "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", + "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl": "8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", + "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", + "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl": "c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", + "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", + "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", + "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl": "44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", + "https://files.pythonhosted.org/packages/6f/b0/b2227677b2d1036d84f5ee95eb948e7af53d59fe3e4328784e4d290607e0/PyYAML-6.0.3-cp38-cp38-musllinux_1_2_x86_64.whl": "6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369", + "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", + "https://files.pythonhosted.org/packages/73/b9/793686b2d54b531203c160ef12bec60228a0109c79bae6c1277961026770/pyyaml-6.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a", + "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl": "5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", + "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", + "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl": "96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", + "https://files.pythonhosted.org/packages/76/b2/2b69cee94c9eb215216fc05778675c393e3aa541131dc910df8e52c83776/PyYAML-6.0.3-cp38-cp38-win_amd64.whl": "5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b", + "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", + "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", + "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl": "02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", + "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl": "5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", + "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", + "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl": "fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", + "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", + "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", + "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl": "418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", + "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", + "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl": "79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", + "https://files.pythonhosted.org/packages/99/a5/718a8ea22521e06ef19f91945766a892c5ceb1855df6adbde67d997ea7ed/PyYAML-6.0.3-cp38-cp38-win32.whl": "3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295", + "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl": "8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", + "https://files.pythonhosted.org/packages/9f/62/67fc8e68a75f738c9200422bf65693fb79a4cd0dc5b23310e5202e978090/pyyaml-6.0.3-cp39-cp39-macosx_10_13_x86_64.whl": "b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da", + "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl": "28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", + "https://files.pythonhosted.org/packages/a7/3b/6c58ac0fa7c4e1b35e48024eb03d00817438310447f93ef4431673c24138/PyYAML-6.0.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3", + "https://files.pythonhosted.org/packages/a9/86/a137b39a611def2ed78b0e66ce2fe13ee701a07c07aebe55c340ed2a050e/pyyaml-6.0.3-cp39-cp39-musllinux_1_2_aarch64.whl": "fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926", + "https://files.pythonhosted.org/packages/ae/92/861f152ce87c452b11b9d0977952259aa7df792d71c1053365cc7b09cc08/pyyaml-6.0.3-cp39-cp39-macosx_11_0_arm64.whl": "c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917", + "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl": "2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", + "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl": "00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", + "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl": "34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", + "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl": "41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", + "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl": "66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", + "https://files.pythonhosted.org/packages/d0/cd/f0cfc8c74f8a030017a2b9c771b7f47e5dd702c3e28e5b2071374bda2948/pyyaml-6.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9", + "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl": "8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", + "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl": "7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", + "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl": "5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", + "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl": "16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", + "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl": "9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", + "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl": "7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", + "https://files.pythonhosted.org/packages/dd/62/71c27c94f457cf4418ef8ccc71735324c549f7e3ea9d34aba50874563561/pyyaml-6.0.3-cp39-cp39-musllinux_1_2_x86_64.whl": "27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7", + "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl": "1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", + "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl": "d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", + "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl": "9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", + "https://files.pythonhosted.org/packages/ef/b2/18f2bd28cd2055a79a46c9b0895c0b3d987ce40ee471cecf58a1a0199805/pyyaml-6.0.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl": "5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5", + "https://files.pythonhosted.org/packages/f0/0c/25113e0b5e103d7f1490c0e947e303fe4a696c10b501dea7a9f49d4e876c/pyyaml-6.0.3-cp39-cp39-win_amd64.whl": "2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007", + "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl": "4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", + "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl": "ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", + "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl": "37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", + "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl": "214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", + "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl": "93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", + "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl": "f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6" + }, + "readme-renderer": { + "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz": "8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", + "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl": "2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151" + }, + "requests": { + "https://files.pythonhosted.org/packages/34/64/8860370b167a9721e8956ae116825caff829224fbca0ca6e7bf8ddef8430/requests-2.33.0.tar.gz": "c7ebc5e8b0f21837386ad0e1c8fe8b829fa5f544d8df3b2253bff14ef29d7652", + "https://files.pythonhosted.org/packages/56/5d/c814546c2333ceea4ba42262d8c4d55763003e767fa169adc693bd524478/requests-2.33.0-py3-none-any.whl": "3324635456fa185245e24865e810cecec7b4caf933d7eb133dcde67d48cee69b", + "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz": "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" + }, + "requests-toolbelt": { + "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", + "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz": "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6" + }, + "rfc3986": { + "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz": "97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", + "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl": "50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd" + }, + "rich": { + "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl": "536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f", + "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz": "e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8" + }, + "rsa": { + "https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl": "90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", + "https://files.pythonhosted.org/packages/aa/65/7d973b89c4d2351d7fb232c2e452547ddfa243e93131e7cfa766da627b52/rsa-4.9.tar.gz": "e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" + }, + "secretstorage": { + "https://files.pythonhosted.org/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz": "2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77", + "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl": "f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99" + }, + "setuptools": { + "https://files.pythonhosted.org/packages/40/50/bc3d02829a3babd70b7f1414c93cf6acd198976f0469a07d0e7b813c5002/setuptools-77.0.1-py3-none-any.whl": "81a234dff81a82bb52e522c8aef145d0dd4de1fd6de4d3b196d0f77dc2fded26", + "https://files.pythonhosted.org/packages/ea/df/9f719dc48f64284be8bd99e2e0bb0dd6e9f8e2c2c3c7bf7a685bc5adf2c7/setuptools-77.0.1.tar.gz": "a1246a1b4178c66d7cf50c9fc6d530fac3f89bc284cf803c7fa878c41b1a03b2" + }, + "six": { + "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz": "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + }, + "tomli": { + "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl": "8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", + "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl": "f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", + "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", + "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl": "a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", + "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz": "cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", + "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl": "889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", + "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", + "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl": "d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", + "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl": "678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", + "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl": "4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", + "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl": "e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", + "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl": "d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", + "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", + "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl": "ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", + "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl": "2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", + "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl": "cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", + "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl": "465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", + "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl": "8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", + "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl": "33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", + "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl": "b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", + "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl": "400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", + "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", + "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", + "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", + "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl": "02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", + "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl": "286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", + "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl": "023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", + "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl": "a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", + "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", + "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", + "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl": "7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", + "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a" + }, + "twine": { + "https://files.pythonhosted.org/packages/5d/ec/00f9d5fd040ae29867355e559a94e9a8429225a0284a3f5f091a3878bfc0/twine-5.1.1-py3-none-any.whl": "215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997", + "https://files.pythonhosted.org/packages/77/68/bd982e5e949ef8334e6f7dcf76ae40922a8750aa2e347291ae1477a4782b/twine-5.1.1.tar.gz": "9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db" + }, + "twisted": { + "https://files.pythonhosted.org/packages/70/53/a50654eb9c63da0df2b5dca8ec27656a88b7edd798de5ffad55353203874/twisted-24.11.0-py3-none-any.whl": "fe403076c71f04d5d2d789a755b687c5637ec3bcd3b2b8252d76f2ba65f54261", + "https://files.pythonhosted.org/packages/77/1c/e07af0df31229250ab58a943077e4adbd5e227d9f2ac826920416b3e5fa2/twisted-24.11.0.tar.gz": "695d0556d5ec579dcc464d2856b634880ed1319f45b10d19043f2b57eb0115b5" + }, + "typeguard": { + "https://files.pythonhosted.org/packages/70/60/8cd6a3d78d00ceeb2193c02b7ed08f063d5341ccdfb24df88e61f383048e/typeguard-4.4.2.tar.gz": "a6f1065813e32ef365bc3b3f503af8a96f9dd4e0033a02c28c4a4983de8c6c49", + "https://files.pythonhosted.org/packages/cf/4b/9a77dc721aa0b7f74440a42e4ef6f9a4fae7324e17f64f88b96f4c25cc05/typeguard-4.4.2-py3-none-any.whl": "77a78f11f09777aeae7fa08585f33b5f4ef0e7335af40005b0c422ed398ff48c" + }, + "typing-extensions": { + "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl": "04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz": "1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" + }, + "urllib3": { + "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl": "bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", + "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz": "1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", + "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz": "e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9" + }, + "validate-email": { + "https://files.pythonhosted.org/packages/84/a0/cb53fb64b52123513d04f9b913b905f3eb6fda7264e639b4573cc715c29f/validate_email-1.3.tar.gz": "784719dc5f780be319cdd185dc85dd93afebdb6ebb943811bc4c7c5f9c72aeaf" + }, + "wheel": { + "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl": "708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", + "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz": "661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729" + }, + "wrapt": { + "https://files.pythonhosted.org/packages/00/ad/5d2c1b34ba3202cd833d9221833e74d6500ce66730974993a8dc9a94fb8c/wrapt-1.17.2-cp39-cp39-win_amd64.whl": "36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb", + "https://files.pythonhosted.org/packages/09/28/2e45a4f4771fcfb109e244d5dbe54259e970362a311b67a965555ba65026/wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl": "6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82", + "https://files.pythonhosted.org/packages/09/5e/1655cf481e079c1f22d0cabdd4e51733679932718dc23bf2db175f329b76/wrapt-1.17.2-cp313-cp313t-win_amd64.whl": "eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c", + "https://files.pythonhosted.org/packages/09/99/c0c844a5ccde0fe5761d4305485297f91d67cf2a1a824c5f282e661ec7ff/wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000", + "https://files.pythonhosted.org/packages/0c/66/95b9e90e6e1274999b183c9c3f984996d870e933ca9560115bd1cd1d6f77/wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl": "5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9", + "https://files.pythonhosted.org/packages/0d/21/09573d2443916705c57fdab85d508f592c0a58d57becc53e15755d67fba2/wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2", + "https://files.pythonhosted.org/packages/0f/77/0576d841bf84af8579124a93d216f55d6f74374e4445264cb378a6ed33eb/wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72", + "https://files.pythonhosted.org/packages/15/06/1dbf478ea45c03e78a6a8c4be4fdc3c3bddea5c8de8a93bc971415e47f0f/wrapt-1.17.2-cp312-cp312-win_amd64.whl": "ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991", + "https://files.pythonhosted.org/packages/17/27/4fe749a54e7fae6e7146f1c7d914d28ef599dacd4416566c055564080fe2/wrapt-1.17.2-cp312-cp312-win32.whl": "468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9", + "https://files.pythonhosted.org/packages/1b/7b/13369d42651b809389c1a7153baa01d9700430576c81a2f5c5e460df0ed9/wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl": "b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22", + "https://files.pythonhosted.org/packages/25/cb/7262bc1b0300b4b64af50c2720ef958c2c1917525238d661c3e9a2b71b7b/wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b", + "https://files.pythonhosted.org/packages/27/70/0f6e0679845cbf8b165e027d43402a55494779295c4b08414097b258ac87/wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c", + "https://files.pythonhosted.org/packages/2a/5a/04cde32b07a7431d4ed0553a76fdb7a61270e78c5fd5a603e190ac389f14/wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98", + "https://files.pythonhosted.org/packages/2b/49/364a615a0cc0872685646c495c7172e4fc7bf1959e3b12a1807a03014e05/wrapt-1.17.2-cp39-cp39-win32.whl": "f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb", + "https://files.pythonhosted.org/packages/2d/21/cf0bd85ae66f92600829ea1de8e1da778e5e9f6e574ccbe74b66db0d95db/wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl": "1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8", + "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl": "b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", + "https://files.pythonhosted.org/packages/32/98/4ed894cf012b6d6aae5f5cc974006bdeb92f0241775addad3f8cd6ab71c8/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb", + "https://files.pythonhosted.org/packages/34/0c/85af70d291f44659c422416f0272046109e785bf6db8c081cfeeae5715c5/wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl": "08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f", + "https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl": "a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5", + "https://files.pythonhosted.org/packages/37/14/bd210faf0a66faeb8529d42b6b45a25d6aa6ce25ddfc19168e4161aed227/wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl": "bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04", + "https://files.pythonhosted.org/packages/39/35/0282c0d8789c0dc9bcc738911776c762a701f95cfe113fb8f0b40e45c2b9/wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl": "1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662", + "https://files.pythonhosted.org/packages/3b/24/11c4510de906d77e0cfb5197f1b1445d4fec42c9a39ea853d482698ac681/wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8", + "https://files.pythonhosted.org/packages/3c/70/1d259c6b1ad164eb23ff70e3e452dd1950f96e6473f72b7207891d0fd1f0/wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9", + "https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl": "4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192", + "https://files.pythonhosted.org/packages/45/ce/700e17a852dd5dec894e241c72973ea82363486bcc1fb05d47b4fbd1d683/wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl": "91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a", + "https://files.pythonhosted.org/packages/47/f8/fb1773491a253cbc123c5d5dc15c86041f746ed30416535f2a8df1f4a392/wrapt-1.17.2-cp311-cp311-win_amd64.whl": "acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3", + "https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl": "8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40", + "https://files.pythonhosted.org/packages/4a/98/de07243751f1c4a9b15c76019250210dd3486ce098c3d80d5f729cba029c/wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl": "703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504", + "https://files.pythonhosted.org/packages/4b/0d/9d4b5219ae4393f718699ca1c05f5ebc0c40d076f7e65fd48f5f693294fb/wrapt-1.17.2-cp310-cp310-win32.whl": "582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563", + "https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl": "e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0", + "https://files.pythonhosted.org/packages/4f/6d/90c9fd2c3c6fee181feecb620d95105370198b6b98a0770cba090441a828/wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl": "9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72", + "https://files.pythonhosted.org/packages/50/ff/149aba8365fdacef52b31a258c4dc1c57c79759c335eff0b3316a2664a64/wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl": "4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda", + "https://files.pythonhosted.org/packages/52/27/3dd9ad5f1097b33c95d05929e409cc86d7c765cb5437b86694dc8f8e9af0/wrapt-1.17.2-cp38-cp38-win_amd64.whl": "95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3", + "https://files.pythonhosted.org/packages/53/18/75ddc64c3f63988f5a1d7e10fb204ffe5762bc663f8023f18ecaf31a332e/wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl": "3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392", + "https://files.pythonhosted.org/packages/53/f8/c3f6b2cf9b9277fb0813418e1503e68414cd036b3b099c823379c9575e6d/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl": "8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6", + "https://files.pythonhosted.org/packages/5a/d1/1daec934997e8b160040c78d7b31789f19b122110a75eca3d4e8da0049e1/wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl": "3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984", + "https://files.pythonhosted.org/packages/5d/a4/c8472fe2568978b5532df84273c53ddf713f689d408a4335717ab89547e0/wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl": "ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6", + "https://files.pythonhosted.org/packages/62/bf/e0105016f907c30b4bd9e377867c48c34dc9c6c0c104556c9c9126bd89ed/wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl": "80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7", + "https://files.pythonhosted.org/packages/65/46/5a917ce85b5c3b490d35c02bf71aedaa9f2f63f2d15d9949cc4ba56e8ba9/wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl": "9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438", + "https://files.pythonhosted.org/packages/6a/e1/0122853035b40b3f333bbb25f1939fc1045e21dd518f7f0922b60c156f7c/wrapt-1.17.2-cp313-cp313t-win32.whl": "13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555", + "https://files.pythonhosted.org/packages/6d/16/112d25e9092398a0dd6fec50ab7ac1b775a0c19b428f049785096067ada9/wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl": "c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9", + "https://files.pythonhosted.org/packages/6f/54/f170dfb278fe1c30d0ff864513cff526d624ab8de3254b20abb9cffedc24/wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl": "18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b", + "https://files.pythonhosted.org/packages/71/d7/cfcf842291267bf455b3e266c0c29dcb675b5540ee8b50ba1699abf3af45/wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6", + "https://files.pythonhosted.org/packages/72/6a/c5a83e8f61aec1e1aeef939807602fb880e5872371e95df2137142f5c58e/wrapt-1.17.2-cp310-cp310-win_amd64.whl": "58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f", + "https://files.pythonhosted.org/packages/73/54/3bfe5a1febbbccb7a2f77de47b989c0b85ed3a6a41614b104204a788c20e/wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d", + "https://files.pythonhosted.org/packages/75/56/05d000de894c4cfcb84bcd6b1df6214297b8089a7bd324c21a4765e49b14/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl": "e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6", + "https://files.pythonhosted.org/packages/77/99/77b06b3c3c410dbae411105bf22496facf03a5496bfaca8fbcf9da381889/wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl": "ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f", + "https://files.pythonhosted.org/packages/7e/09/dccf68fa98e862df7e6a60a61d43d644b7d095a5fc36dbb591bbd4a1c7b2/wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl": "1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c", + "https://files.pythonhosted.org/packages/80/4e/eb8b353e36711347893f502ce91c770b0b0929f8f0bed2670a6856e667a9/wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl": "e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9", + "https://files.pythonhosted.org/packages/89/be/7c1baed43290775cb9030c774bc53c860db140397047cc49aedaf0a15477/wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306", + "https://files.pythonhosted.org/packages/8a/04/c97273eb491b5f1c918857cd26f314b74fc9b29224521f5b83f872253725/wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl": "766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b", + "https://files.pythonhosted.org/packages/8a/f4/6ed2b8f6f1c832933283974839b88ec7c983fd12905e01e97889dadf7559/wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl": "99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a", + "https://files.pythonhosted.org/packages/8f/fa/9fb6e594f2ce03ef03eddbdb5f4f90acb1452221a5351116c7c4708ac865/wrapt-1.17.2-cp311-cp311-win32.whl": "4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317", + "https://files.pythonhosted.org/packages/90/ec/00759565518f268ed707dcc40f7eeec38637d46b098a1f5143bff488fe97/wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061", + "https://files.pythonhosted.org/packages/9d/4b/71996e62d543b0a0bd95dda485219856def3347e3e9380cc0d6cf10cfb2f/wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl": "129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b", + "https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl": "d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925", + "https://files.pythonhosted.org/packages/a2/a9/712a53f8f4f4545768ac532619f6e56d5d0364a87b2212531685e89aeef8/wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl": "2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061", + "https://files.pythonhosted.org/packages/a4/b6/6eced5e2db5924bf6d9223d2bb96b62e00395aae77058e6a9e11bf16b3bd/wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl": "f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119", + "https://files.pythonhosted.org/packages/a5/51/a42757dd41032afd6d8037617aa3bc6803ba971850733b24dfb7d5c627c4/wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f", + "https://files.pythonhosted.org/packages/a7/b1/0bb11e29aa5139d90b770ebbfa167267b1fc548d2302c30c8f7572851738/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl": "4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f", + "https://files.pythonhosted.org/packages/a7/d3/8e17bb70f6ae25dabc1aaf990f86824e4fd98ee9cadf197054e068500d27/wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl": "9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2", + "https://files.pythonhosted.org/packages/a9/68/6b83367e1afb8de91cbea4ef8e85b58acdf62f034f05d78c7b82afaa23d8/wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a", + "https://files.pythonhosted.org/packages/b4/b0/9fc566b0fe08b282c850063591a756057c3247b2362b9286429ec5bf1721/wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6", + "https://files.pythonhosted.org/packages/b7/8e/067021fa3c8814952c5e228d916963c1115b983e21393289de15128e867e/wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl": "3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62", + "https://files.pythonhosted.org/packages/bf/ae/743f16ef8c2e3628df3ddfd652b7d4c555d12c84b53f3d8218498f4ade9b/wrapt-1.17.2-cp313-cp313-win_amd64.whl": "69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845", + "https://files.pythonhosted.org/packages/bf/bb/d552bfe47db02fcfc950fc563073a33500f8108efa5f7b41db2f83a59028/wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b", + "https://files.pythonhosted.org/packages/c0/ef/8be90a0b7e73c32e550c73cfb2fa09db62234227ece47b0e80a05073b375/wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl": "35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998", + "https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz": "41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3", + "https://files.pythonhosted.org/packages/c6/d2/dcb56bf5f32fcd4bd9aacc77b50a539abdd5b6536872413fd3f428b21bed/wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl": "9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae", + "https://files.pythonhosted.org/packages/ca/74/336c918d2915a4943501c77566db41d1bd6e9f4dbc317f356b9a244dfe83/wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a", + "https://files.pythonhosted.org/packages/cd/f7/a2aab2cbc7a665efab072344a8949a71081eed1d2f451f7f7d2b966594a2/wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl": "ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58", + "https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl": "6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125", + "https://files.pythonhosted.org/packages/cf/cb/7a07b51762dcd59bdbe07aa97f87b3169766cadf240f48d1cbe70a1be9db/wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9", + "https://files.pythonhosted.org/packages/d5/66/5d973e9f3e7370fd686fb47a9af3319418ed925c27d72ce16b791231576d/wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc", + "https://files.pythonhosted.org/packages/ea/fd/0c30f2301ca94e655e5e057012e83284ce8c545df7661a78d8bfca2fac7a/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681", + "https://files.pythonhosted.org/packages/f8/1e/b215068e824878f69ea945804fa26c176f7c2735a3ad5367d78930bd076a/wrapt-1.17.2-cp38-cp38-win32.whl": "410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7", + "https://files.pythonhosted.org/packages/f8/5a/7cffd26b1c607b0b0c8a9ca9d75757ad7620c9c0a9b4a25d3f8a1480fafc/wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl": "4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2", + "https://files.pythonhosted.org/packages/f9/f0/13925f4bd6548013038cdeb11ee2cbd4e37c30f8bfd5db9e5a2a370d6e20/wrapt-1.17.2-cp313-cp313-win32.whl": "abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a", + "https://files.pythonhosted.org/packages/fa/9b/e172c8f28a489a2888df18f953e2f6cb8d33b1a2e78c9dfc52d8bf6a5ead/wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl": "612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82" + }, + "zipp": { + "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl": "071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", + "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz": "bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", + "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl": "a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", + "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz": "a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166" + }, + "zope-event": { + "https://files.pythonhosted.org/packages/46/c2/427f1867bb96555d1d34342f1dd97f8c420966ab564d58d18469a1db8736/zope.event-5.0.tar.gz": "bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd", + "https://files.pythonhosted.org/packages/fe/42/f8dbc2b9ad59e927940325a22d6d3931d630c3644dae7e2369ef5d9ba230/zope.event-5.0-py3-none-any.whl": "2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26" + }, + "zope-interface": { + "https://files.pythonhosted.org/packages/07/a8/106ca4c2add440728e382f1b16c7d886563602487bdd90004788d45eb310/zope.interface-7.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "f6dd02ec01f4468da0f234da9d9c8545c5412fef80bc590cc51d8dd084138a89", + "https://files.pythonhosted.org/packages/0a/2f/1bccc6f4cc882662162a1158cda1a7f616add2ffe322b28c99cb031b4ffc/zope.interface-7.2-cp313-cp313-win_amd64.whl": "4893395d5dd2ba655c38ceb13014fd65667740f09fa5bb01caa1e6284e48c0cd", + "https://files.pythonhosted.org/packages/11/b1/627384b745310d082d29e3695db5f5a9188186676912c14b61a78bbc6afe/zope.interface-7.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "802176a9f99bd8cc276dcd3b8512808716492f6f557c11196d42e26c01a69a4c", + "https://files.pythonhosted.org/packages/28/ea/fdd9813c1eafd333ad92464d57a4e3a82b37ae57c19497bcffa42df673e4/zope.interface-7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "550f1c6588ecc368c9ce13c44a49b8d6b6f3ca7588873c679bd8fd88a1b557b6", + "https://files.pythonhosted.org/packages/2a/dd/fcd313ee216ad0739ae00e6126bc22a0af62a74f76a9ca668d16cd276222/zope.interface-7.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "52e446f9955195440e787596dccd1411f543743c359eeb26e9b2c02b077b0519", + "https://files.pythonhosted.org/packages/30/93/9210e7606be57a2dfc6277ac97dcc864fd8d39f142ca194fdc186d596fda/zope.interface-7.2.tar.gz": "8b49f1a3d1ee4cdaf5b32d2e738362c7f5e40ac8b46dd7d1a65e82a4872728fe", + "https://files.pythonhosted.org/packages/36/22/b1abd91854c1be03f5542fe092e6a745096d2eca7704d69432e119100583/zope.interface-7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "72cd1790b48c16db85d51fbbd12d20949d7339ad84fd971427cf00d990c1f137", + "https://files.pythonhosted.org/packages/3b/d3/0000a4d497ef9fbf4f66bb6828b8d0a235e690d57c333be877bec763722f/zope.interface-7.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "0ef9e2f865721553c6f22a9ff97da0f0216c074bd02b25cf0d3af60ea4d6931d", + "https://files.pythonhosted.org/packages/3e/e5/0b359e99084f033d413419eff23ee9c2bd33bca2ca9f4e83d11856f22d10/zope.interface-7.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "27f926f0dcb058211a3bb3e0e501c69759613b17a553788b2caeb991bed3b61d", + "https://files.pythonhosted.org/packages/49/65/78e7cebca6be07c8fc4032bfbb123e500d60efdf7b86727bb8a071992108/zope.interface-7.2-cp313-cp313-macosx_11_0_arm64.whl": "15398c000c094b8855d7d74f4fdc9e73aa02d4d0d5c775acdef98cdb1119768d", + "https://files.pythonhosted.org/packages/49/b4/451f19448772b4a1159519033a5f72672221e623b0a1bd2b896b653943d8/zope.interface-7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "033b3923b63474800b04cba480b70f6e6243a62208071fc148354f3f89cc01b7", + "https://files.pythonhosted.org/packages/52/db/7e5f4226bef540f6d55acfd95cd105782bc6ee044d9b5587ce2c95558a5e/zope.interface-7.2-cp310-cp310-macosx_11_0_arm64.whl": "05b910a5afe03256b58ab2ba6288960a2892dfeef01336dc4be6f1b9ed02ab0a", + "https://files.pythonhosted.org/packages/5f/c7/3c67562e03b3752ba4ab6b23355f15a58ac2d023a6ef763caaca430f91f2/zope.interface-7.2-cp312-cp312-win_amd64.whl": "29caad142a2355ce7cfea48725aa8bcf0067e2b5cc63fcf5cd9f97ad12d6afb5", + "https://files.pythonhosted.org/packages/65/94/5aa4461c10718062c8f8711161faf3249d6d3679c24a0b81dd6fc8ba1dd3/zope.interface-7.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "a102424e28c6b47c67923a1f337ede4a4c2bba3965b01cf707978a801fc7442c", + "https://files.pythonhosted.org/packages/68/0b/c7516bc3bad144c2496f355e35bd699443b82e9437aa02d9867653203b4a/zope.interface-7.2-cp312-cp312-macosx_10_9_x86_64.whl": "086ee2f51eaef1e4a52bd7d3111a0404081dadae87f84c0ad4ce2649d4f708b7", + "https://files.pythonhosted.org/packages/69/da/c9cfb384c18bd3a26d9fc6a9b5f32ccea49ae09444f097eaa5ca9814aff9/zope.interface-7.2-cp39-cp39-win_amd64.whl": "1090c60116b3da3bfdd0c03406e2f14a1ff53e5771aebe33fec1edc0a350175d", + "https://files.pythonhosted.org/packages/76/71/e6177f390e8daa7e75378505c5ab974e0bf59c1d3b19155638c7afbf4b2d/zope.interface-7.2-cp310-cp310-macosx_10_9_x86_64.whl": "ce290e62229964715f1011c3dbeab7a4a1e4971fd6f31324c4519464473ef9f2", + "https://files.pythonhosted.org/packages/7b/90/12d50b95f40e3b2fc0ba7f7782104093b9fd62806b13b98ef4e580f2ca61/zope.interface-7.2-cp310-cp310-win_amd64.whl": "144964649eba4c5e4410bb0ee290d338e78f179cdbfd15813de1a664e7649b3b", + "https://files.pythonhosted.org/packages/7c/a3/c4e9d23ca87d3f922e38ba4f4edcbf6114c10ff9ee0b7b4d5023b0f1f3f5/zope.interface-7.2-cp38-cp38-win_amd64.whl": "7dc5016e0133c1a1ec212fc87a4f7e7e562054549a99c73c8896fa3a9e80cbc7", + "https://files.pythonhosted.org/packages/88/d4/4ba1569b856870527cec4bf22b91fe704b81a3c1a451b2ccf234e9e0666f/zope.interface-7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "2ad9913fd858274db8dd867012ebe544ef18d218f6f7d1e3c3e6d98000f14b75", + "https://files.pythonhosted.org/packages/8a/cd/f1e8303b81151cd6ba6e229db5fe601f9867a7b29f24a95eeba255970099/zope.interface-7.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "baf95683cde5bc7d0e12d8e7588a3eb754d7c4fa714548adcd96bdf90169f021", + "https://files.pythonhosted.org/packages/8c/2c/1f49dc8b4843c4f0848d8e43191aed312bad946a1563d1bf9e46cf2816ee/zope.interface-7.2-cp39-cp39-macosx_10_9_x86_64.whl": "7bd449c306ba006c65799ea7912adbbfed071089461a19091a228998b82b1fdb", + "https://files.pythonhosted.org/packages/96/08/2103587ebc989b455cf05e858e7fbdfeedfc3373358320e9c513428290b1/zope.interface-7.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "cab15ff4832580aa440dc9790b8a6128abd0b88b7ee4dd56abacbc52f212209d", + "https://files.pythonhosted.org/packages/98/7d/2e8daf0abea7798d16a58f2f3a2bf7588872eee54ac119f99393fdd47b65/zope.interface-7.2-cp311-cp311-macosx_10_9_x86_64.whl": "1909f52a00c8c3dcab6c4fad5d13de2285a4b3c7be063b239b8dc15ddfb73bd2", + "https://files.pythonhosted.org/packages/9e/dd/5505c6fa2dd3a6b76176c07bc85ad0c24f218a3e7c929272384a5eb5f18a/zope.interface-7.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "224b7b0314f919e751f2bca17d15aad00ddbb1eadf1cb0190fa8175edb7ede62", + "https://files.pythonhosted.org/packages/9f/aa/1a28c02815fe1ca282b54f6705b9ddba20328fabdc37b8cf73fc06b172f0/zope.interface-7.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "25e6a61dcb184453bb00eafa733169ab6d903e46f5c2ace4ad275386f9ab327a", + "https://files.pythonhosted.org/packages/a0/2a/0c03c7170fe61d0d371e4c7ea5b62b8cb79b095b3d630ca16719bf8b7b18/zope.interface-7.2-cp311-cp311-macosx_11_0_arm64.whl": "80ecf2451596f19fd607bb09953f426588fc1e79e93f5968ecf3367550396b22", + "https://files.pythonhosted.org/packages/a2/e9/1463036df1f78ff8c45a02642a7bf6931ae4a38a4acd6a8e07c128e387a7/zope.interface-7.2-cp312-cp312-macosx_11_0_arm64.whl": "21328fcc9d5b80768bf051faa35ab98fb979080c18e6f84ab3f27ce703bce465", + "https://files.pythonhosted.org/packages/a7/2c/82028f121d27c7e68632347fe04f4a6e0466e77bb36e104c8b074f3d7d7b/zope.interface-7.2-cp311-cp311-win_amd64.whl": "3f6771d1647b1fc543d37640b45c06b34832a943c80d1db214a37c31161a93f1", + "https://files.pythonhosted.org/packages/b6/66/ac05b741c2129fdf668b85631d2268421c5cd1a9ff99be1674371139d665/zope.interface-7.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl": "a71a5b541078d0ebe373a81a3b7e71432c61d12e660f1d67896ca62d9628045b", + "https://files.pythonhosted.org/packages/b8/f6/54548df6dc73e30ac6c8a7ff1da73ac9007ba38f866397091d5a82237bd3/zope.interface-7.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "eb23f58a446a7f09db85eda09521a498e109f137b85fb278edb2e34841055398", + "https://files.pythonhosted.org/packages/c6/3b/e309d731712c1a1866d61b5356a069dd44e5b01e394b6cb49848fa2efbff/zope.interface-7.2-cp313-cp313-macosx_10_9_x86_64.whl": "3e0350b51e88658d5ad126c6a57502b19d5f559f6cb0a628e3dc90442b53dd98", + "https://files.pythonhosted.org/packages/e6/0f/4e296d4b36ceb5464b671443ac4084d586d47698610025c4731ff2d30eae/zope.interface-7.2-cp38-cp38-macosx_10_9_x86_64.whl": "d3a8ffec2a50d8ec470143ea3d15c0c52d73df882eef92de7537e8ce13475e8a", + "https://files.pythonhosted.org/packages/ed/7d/83ddbfc8424c69579a90fc8edc2b797223da2a8083a94d8dfa0e374c5ed4/zope.interface-7.2-cp39-cp39-macosx_11_0_arm64.whl": "a19a6cc9c6ce4b1e7e3d319a473cf0ee989cbbe2b39201d7c19e214d2dfb80c7", + "https://files.pythonhosted.org/packages/f5/8c/49548aaa4f691615d703b5bee88ea67f68eac8f94c9fb6f1b2f4ae631354/zope.interface-7.2-cp38-cp38-macosx_11_0_arm64.whl": "31d06db13a30303c08d61d5fb32154be51dfcbdb8438d2374ae27b4e069aac40", + "https://files.pythonhosted.org/packages/fc/ca/57286866285f4b8a4634c12ca1957c24bdac06eae28fd4a3a578e30cf906/zope.interface-7.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl": "8e7da17f53e25d1a3bde5da4601e026adc9e8071f9f6f936d0fe3fe84ace6d54", + "https://files.pythonhosted.org/packages/fe/f9/5a66f98f8c21d644d94f95b9484564f76e175034de3a57a45ba72238ce10/zope.interface-7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl": "e204937f67b28d2dca73ca936d3039a144a081fc47a07598d44854ea2a106239" + } + } + }, + "fact_version": "v1", + "index_urls": { + "https://pypi.org/simple/": { + "absl_py": "/simple/absl-py/", + "astunparse": "/simple/astunparse/", + "attrs": "/simple/attrs/", + "automat": "/simple/automat/", + "backports_tarfile": "/simple/backports-tarfile/", + "cachetools": "/simple/cachetools/", + "certifi": "/simple/certifi/", + "cffi": "/simple/cffi/", + "chardet": "/simple/chardet/", + "charset_normalizer": "/simple/charset-normalizer/", + "constantly": "/simple/constantly/", + "cryptography": "/simple/cryptography/", + "deprecated": "/simple/deprecated/", + "docutils": "/simple/docutils/", + "gevent": "/simple/gevent/", + "google_auth": "/simple/google-auth/", + "googleapis_common_protos": "/simple/googleapis-common-protos/", + "greenlet": "/simple/greenlet/", + "hyperlink": "/simple/hyperlink/", + "idna": "/simple/idna/", + "importlib_metadata": "/simple/importlib-metadata/", + "incremental": "/simple/incremental/", + "jaraco_classes": "/simple/jaraco-classes/", + "jaraco_context": "/simple/jaraco-context/", + "jaraco_functools": "/simple/jaraco-functools/", + "jeepney": "/simple/jeepney/", + "jinja2": "/simple/jinja2/", + "keyring": "/simple/keyring/", + "markdown_it_py": "/simple/markdown-it-py/", + "markupsafe": "/simple/markupsafe/", + "mdurl": "/simple/mdurl/", + "more_itertools": "/simple/more-itertools/", + "nh3": "/simple/nh3/", + "opentelemetry_api": "/simple/opentelemetry-api/", + "opentelemetry_exporter_prometheus": "/simple/opentelemetry-exporter-prometheus/", + "opentelemetry_resourcedetector_gcp": "/simple/opentelemetry-resourcedetector-gcp/", + "opentelemetry_sdk": "/simple/opentelemetry-sdk/", + "opentelemetry_semantic_conventions": "/simple/opentelemetry-semantic-conventions/", + "pkginfo": "/simple/pkginfo/", + "prometheus_client": "/simple/prometheus-client/", + "protobuf": "/simple/protobuf/", + "pyasn1": "/simple/pyasn1/", + "pyasn1_modules": "/simple/pyasn1-modules/", + "pycparser": "/simple/pycparser/", + "pygments": "/simple/pygments/", + "pywin32_ctypes": "/simple/pywin32-ctypes/", + "pyyaml": "/simple/pyyaml/", + "readme_renderer": "/simple/readme-renderer/", + "requests": "/simple/requests/", + "requests_toolbelt": "/simple/requests-toolbelt/", + "rfc3986": "/simple/rfc3986/", + "rich": "/simple/rich/", + "rsa": "/simple/rsa/", + "secretstorage": "/simple/secretstorage/", + "setuptools": "/simple/setuptools/", + "six": "/simple/six/", + "tomli": "/simple/tomli/", + "twine": "/simple/twine/", + "twisted": "/simple/twisted/", + "typeguard": "/simple/typeguard/", + "typing_extensions": "/simple/typing-extensions/", + "urllib3": "/simple/urllib3/", + "validate_email": "/simple/validate-email/", + "wheel": "/simple/wheel/", + "wrapt": "/simple/wrapt/", + "zipp": "/simple/zipp/", + "zope_event": "/simple/zope-event/", + "zope_interface": "/simple/zope-interface/" + } + } + } + } +} diff --git a/README.md b/README.md index e10e6233..cb5b7c62 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,225 @@ -# EngFlow RE Example Repository +# EngFlow public examples This repository contains examples in various languages that demonstrate how to build and test software with the EngFlow Remote Execution service. + +## Prerequisites + +- `//python`: Bazel needs to install the dependencies listed in + `python/requirements.txt`. To make this repository work across platforms, we + do not check in a lock file. Execute the following commands to generate + the lock file before building and testing: + + ```sh + # https://stackoverflow.com/a/73720550 + git update-index --skip-worktree python/requirements_lock.txt + bazel run //python:requirements.update + ``` + +- `//swift`: Requires the `clang` compiler. Make sure the binary is in your + `PATH`. + + **`//swift` also does not yet build remotely on platforms other than macOS**, + due to lack of support in [rules_swift][2]. + + The [implementation of `swift_autoconfiguration` as of v1.18.0][3] does not + yet use the [Bazel `toolchain` API][4]. Instead, it selects the platform based + on the `os.name` Java system property, and on Linux, expects `swiftc` to exist + on the system already: + + - [repository_ctx.os][5] + - [repository_os.name][6] + - [`_create_linux_toolchain()` checks for `swiftc`][7] + + Other language rule sets contain logic to download the appropriate language + SDK on demand. + + The following issues track the eventual addition of `toolchain` support and + automatic SDK downloads on Linux (both opened 2018-06-06): + + - [bazelbuild/rules_swift: Migrate to platforms/toolchains API #3][8] + - [bazelbuild/rules_swift: Auto-download Linux toolchains when possible #4][9] + +## Local execution + +Make sure that you can build and run the tests in the language of your choice +locally before attempting remote execution. + +### Building locally + +- `cpp`, `csharp`, `docker`, `genrules`, `go`, `java`, `kotlin`, `perl`, + `python`, `scala`, and `typescript`: + + ```sh + bazel build //${DIRECTORY}/... + ``` + + Build them all with: + + ```sh + bazel build //... + ``` + +- `ios`: + + This will only work on a macOS device with XCode (and the necessary iPhone + simulators) installed. + + ``` + # --config=ios is needed to properly set up the device simulators for testing + bazel build --config=ios //ios:all + ``` + +- `swift`: + + ```sh + # --config=clang isn't required on macOS + bazel build --config=clang //swift/... + ``` + +### Testing locally + +- `java`, `python`, `scala`, and `typescript`: + + ```sh + bazel test //${DIRECTORY}/... + ``` + + Test them all with: + + ```sh + bazel test //... + ``` + +- `ios`: + + This will only work on a macOS device with XCode (and the necessary iPhone + simulators) installed. + + ```sh + # --config=ios is needed to properly set up the device simulators for testing + bazel test --config=ios //ios:all + ``` + +- `swift`: + + ```sh + # --config=clang isn't required on macOS + bazel test --config=clang //swift/... + ``` + +## Remote execution + +Make sure to include `--remote_executor` and `--bes_backend`, in the `engflow` +configuration of your `.bazelrc.user` file, as well as access credentials if +needed. For instance: + +```bzl +# Incorporate configurations from .bazelrc, which imports this file. +# +# - Depending on your cluster configuration, replace remote_linux_64 with +# remote_macos_x64 or remote_windows_x64. +build:engflow --config=engflow_common +build:engflow --config=remote_linux_x64 + +# Configuration for your trial cluster +build:engflow --remote_executor=grpcs://${CLUSTER_ENDPOINT}/ +build:engflow --bes_backend=grpcs://${CLUSTER_ENDPOINT}/ +build:engflow --bes_results_url=https://${CLUSTER_ENDPOINT}/invocation/ +build:engflow --nogoogle_default_credentials +build:engflow --bes_lifecycle_events + +# Configuration for your mTLS certificates (if required); otherwise ignore +# these lines and use the auth helper configuration below. +build:engflow --tls_client_certificate=/path/to/credentials/cert.crt +build:engflow --tls_client_key=/path/to/credentials/cert.key + +# Configuration for your EngFlow auth helper (if required); otherwise ignore +# this line and use the mTLS configuration above. +build:engflow --credential_helper=${CLUSTER_ENDPOINT}=/path/to/engflow_auth + +# This ensures _all_ build and test runs will be remote. Comment this out +# when building locally. +build --config=engflow +``` + +### Building on remote + +Add `--config=engflow` to the following commands if `build --config=engflow` +isn't enabled in your `.bazelrc.user` file. + +- `cpp`, `csharp`, `docker`, `genrules`, `go`, `java`, `kotlin`, `perl`, + `python`, `scala`, or `typescript`: + + ```sh + bazel build //${DIRECTORY}/... + ``` + + Build them all with: + + ```sh + bazel build //... + ``` + +- `ios`: + + These can only be tested remotely on a macOS worker with the matching XCode + installed. However, this means that the local bazel can be executed from linux + or macOS, since all work is done on the remote macOS worker. + + ```sh + # --config=ios is needed to properly set up the device simulators for testing + bazel build --config=ios --config=remote_macos_arm64 --config=opal //ios:all + ``` + +- `swift`: + + ```sh + bazel build //swift:tests + ``` + +### Testing on remote + +- `java`, `python`, `scala`, and `typescript`: + + ```sh + bazel test //${DIRECTORY}/... + ``` + + Test them all with: + + ```sh + bazel test //... + ``` + +- `ios`: + + These can only be tested remotely on a macOS worker with the matching XCode + installed. However, this means that the local bazel can be executed from linux + or macOS, since all work is done on the remote macOS worker. + + ```sh + # --config=ios is needed to properly set up the device simulators for testing + bazel test --config=ios --config=remote_macos_arm64 //ios:all + ``` + +- `swift`: + + ```sh + bazel test //swift:tests + ``` + +## `engflowapis` execution + +A detailed example of `EngFlow` APIs consumption is presented in +[java/com/engflow/notificationqueue][1]. + +[1]: java/com/engflow/notificationqueue/README.md +[2]: https://github.com/bazelbuild/rules_swift +[3]: https://github.com/bazelbuild/rules_swift/blob/1.18.0/swift/internal/swift_autoconfiguration.bzl#L428-L438 +[4]: https://bazel.build/extending/toolchains +[5]: https://bazel.build/rules/lib/builtins/repository_ctx#os +[6]: https://bazel.build/rules/lib/builtins/repository_os.html#name +[7]: https://github.com/bazelbuild/rules_swift/blob/1.18.0/swift/internal/swift_autoconfiguration.bzl#L268-L269 +[8]: https://github.com/bazelbuild/rules_swift/issues/3 +[9]: https://github.com/bazelbuild/rules_swift/issues/4 diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index 64074e10..00000000 --- a/WORKSPACE +++ /dev/null @@ -1,30 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -http_archive( - name = "bazel_toolchains", - sha256 = "89a053218639b1c5e3589a859bb310e0a402dedbe4ee369560e66026ae5ef1f2", - strip_prefix = "bazel-toolchains-3.5.0", - urls = [ - "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.5.0/bazel-toolchains-3.5.0.tar.gz", - "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.5.0/bazel-toolchains-3.5.0.tar.gz", - ], -) - -load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig") -load("@bazel_toolchains//rules/exec_properties:exec_properties.bzl", "create_rbe_exec_properties_dict") - -# For now, we use a simple Docker image provided by the Bazel project which -# supports C/C++, Java, and Python. The downside of this image compared to the -# RBE images is that it does not come with configs, so the first build can take -# about a minute to generate them. -rbe_autoconfig( - name = "engflow_remote_config", - detect_java_home = True, - digest = "sha256:d318041b3a16e36550e42c443e856d93710e10252e7111431802fe54b99f2dc9", - registry = "gcr.io", - repository = "bazel-public/ubuntu1804-bazel-java11", - use_legacy_platform_definition = False, - exec_properties = { - }, -) - diff --git a/buck2/cpp/.buckconfig b/buck2/cpp/.buckconfig new file mode 100644 index 00000000..28021ed9 --- /dev/null +++ b/buck2/cpp/.buckconfig @@ -0,0 +1,53 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +[cells] +root = . +prelude = prelude +toolchains = toolchains +none = none + +[cell_aliases] +config = prelude +ovr_config = prelude +fbcode = none +fbsource = none +fbcode_macros = none +buck = none + +# Uses a copy of the prelude bundled with the buck2 binary. You can alternatively delete this +# section and vendor a copy of the prelude to the `prelude` directory of your project. +[external_cells] +prelude = bundled + +[parser] +target_platform_detector_spec = target:root//...->root//platforms:remote_platform + +[buck2] +digest_algorithms = SHA256 + +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + +[build] +execution_platforms = root//platforms:remote_platform + +[project] +ignore = .git + +[re] +remote_execution_test_build_mode = root//platforms:remote_execution_action_keys diff --git a/buck2/cpp/.buckroot b/buck2/cpp/.buckroot new file mode 100644 index 00000000..e69de29b diff --git a/buck2/cpp/.gitignore b/buck2/cpp/.gitignore new file mode 100644 index 00000000..0a0ddb2e --- /dev/null +++ b/buck2/cpp/.gitignore @@ -0,0 +1 @@ +/buck-out diff --git a/buck2/cpp/BUCK b/buck2/cpp/BUCK new file mode 100644 index 00000000..11abfa2c --- /dev/null +++ b/buck2/cpp/BUCK @@ -0,0 +1,42 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +cxx_binary( + name = "main", + srcs = ["main.cpp"], + link_style = "static", +) + +cxx_binary( + name = "cpp", + srcs = ["main.cc"], + deps = [":cpp_lib"], +) + +cxx_library( + name = "cpp_lib", + srcs = [ + "hello.cc", + ], + exported_headers = glob(["**/*.h"]), + visibility = ["PUBLIC"], +) + +cxx_test( + name = "cpp_test", + srcs = ["hello_test.cc"], + deps = [ + ":cpp_lib", + ], +) diff --git a/buck2/cpp/README.md b/buck2/cpp/README.md new file mode 100644 index 00000000..a4566deb --- /dev/null +++ b/buck2/cpp/README.md @@ -0,0 +1,59 @@ +# EngFlow RE + Buck2 cpp example + +This example demonstrates use of EngFlow RE for a simple C++ project built with [Buck2](https://github.com/facebook/buck2) using the prelude. + +It is based on two existing samples in the Buck2 upstream repo: + +* Simple cpp Hello World project - https://github.com/facebook/buck2/tree/804d62242214455d51787f7c8c96a1e12c75ec32/examples/hello_world +* Buck2 remote execution integration with EngFlow - https://github.com/facebook/buck2/tree/804d62242214455d51787f7c8c96a1e12c75ec32/examples/remote_execution/engflow + +### Example structure + +In the `platforms` cell we specify: +* The platform used for remote execution in this project `root//platforms:remote_platform`, which includes the definition of the Docker image used for remote execution, and that defines constraints for targets to run in the remote execution environment. This platform provides an `ExecutionPlatformRegistrationInfo` a `ConfigurationInfo` and a `PlatformInfo` to be able to be used in the `.buckconfig`, and in the `exec_compatible_with` and `default_target_platform` of `cxx_*` rules. +* The `root//platforms:remote_execution_action_keys` target that provides a `BuildModeInfo` which is necessary for the prelude to correctly configure remote execution of tests. It defines two attributes that can be used as cache silo keys. + +In the `toolchains` cell we specify: + +* The c++ toolchain `root//toolchains:cxx_tools_info_toolchain` that is compatible with the remote execution environment. +* The clang tools, `root//toolchains:path_clang_tools`, which is used by the c++ toolchain, and specifies the tools installed in the Docker image. +* The remote test execution toolchain, `root//toolchains:remote_test_execution_toolchain`. This toolchain defines platform options in the form of `capabilities`. Critically these include the `container-image`. + +The main `BUCK` file defines: + +* A `cxx_binary` target that has the `exec_compatible_with` as well as the `default_target_platform` attrs pointing to the `root//platforms:remote_platform`. +* A `cxx_library`target that has the `exec_compatible_with` as well as the `default_target_platform` attrs pointing to the `root//platforms:remote_platform`. +* A `cxx_test` target that has the `exec_compatible_with` as well as the `default_target_platform` attrs pointing to the `root//platforms:remote_platform`. It also has a `remote_execution_action_key_providers` attr that points to the `root//platforms:remote_execution_action_keys` target. + +### Relevant configs in `.buckconfig` + +The EngFlow endpoint and certificate should be configured as the +following: + +```ini +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + ``` + +To obtain the value of ``, log into https://.cluster.engflow.com/gettingstarted and obtain the value of `x-engflow-auth-token` in section `Method 2: JWT`, take note of this value. Then set `AUTH_HTTP_HEADERS` with the value `x-engflow-auth-method:jwt-v0,x-engflow-auth-token:. + +Note for CI runs, the auth method used is [Github Tokens](https://docs.engflow.com/re/config/authentication.html#github-tokens). + +### Usage instructions + +Clone the repository and replace the relevant configs in `.buckconfig`. + +Build the example: + +``` +buck2 build --remote-only //:cpp_lib +``` + +Test the example: + +``` +buck2 test --remote-only //:cpp_test +``` diff --git a/buck2/cpp/hello.cc b/buck2/cpp/hello.cc new file mode 100644 index 00000000..631a7fd0 --- /dev/null +++ b/buck2/cpp/hello.cc @@ -0,0 +1,7 @@ +#include "hello.h" + +#include + +std::string hello() { + return "hello"; +} diff --git a/buck2/cpp/hello.h b/buck2/cpp/hello.h new file mode 100644 index 00000000..8df9418b --- /dev/null +++ b/buck2/cpp/hello.h @@ -0,0 +1,8 @@ +#ifndef cpp_hello_h +#define cpp_hello_h + +#include + +std::string hello(); + +#endif diff --git a/buck2/cpp/hello_test.cc b/buck2/cpp/hello_test.cc new file mode 100644 index 00000000..97b455a2 --- /dev/null +++ b/buck2/cpp/hello_test.cc @@ -0,0 +1,11 @@ +#include +#include "hello.h" + +int main() { + auto got = hello(); + if (got != "hello") { + std::cerr << "got '" << got << "', want 'hello'" << std::endl; + return 1; + } + return 0; +} diff --git a/buck2/cpp/main.cc b/buck2/cpp/main.cc new file mode 100644 index 00000000..57010349 --- /dev/null +++ b/buck2/cpp/main.cc @@ -0,0 +1,7 @@ +#include +#include "hello.h" + +int main() { + std::cout << hello() << std::endl; + return 0; +} diff --git a/buck2/cpp/main.cpp b/buck2/cpp/main.cpp new file mode 100644 index 00000000..5b3849e1 --- /dev/null +++ b/buck2/cpp/main.cpp @@ -0,0 +1,4 @@ +#include +int main() { + std::cout << "Hello from a C++ Buck2 program!" << std::endl; +} diff --git a/buck2/cpp/platforms/BUCK b/buck2/cpp/platforms/BUCK new file mode 100644 index 00000000..8e4f659a --- /dev/null +++ b/buck2/cpp/platforms/BUCK @@ -0,0 +1,32 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load(":defs.bzl", "platforms") +load(":defs.bzl", "action_keys") + +# This platform configures details of remote execution. +platforms( + name = "remote_platform", + cpu_configuration = "config//cpu:x86_64", + os_configuration = "config//os:linux", +) + +# This action_key provides a default BuildModeInfo that is needed for RE of tests to function properly. +# The values in `cell` and `mode` can be used, in practice, to create cache silos. Any values can be given to these attributes. +action_keys( + name = "remote_execution_action_keys", + cell = "standard", + mode = "standard", + visibility = ["PUBLIC"], +) diff --git a/buck2/cpp/platforms/defs.bzl b/buck2/cpp/platforms/defs.bzl new file mode 100644 index 00000000..fb39e319 --- /dev/null +++ b/buck2/cpp/platforms/defs.bzl @@ -0,0 +1,74 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +# This platform is essentially the same as the one provided in https://github.com/facebook/buck2/blob/804d62242214455d51787f7c8c96a1e12c75ec32/examples/remote_execution/engflow/platforms/defs.bzl +# The main difference is we enable passing CPU and OS constraints and we use the sample EngFlow RE image. +load("@prelude//:build_mode.bzl", "BuildModeInfo") + +def _platforms(ctx): + constraints = dict() + constraints.update(ctx.attrs.cpu_configuration[ConfigurationInfo].constraints) + constraints.update(ctx.attrs.os_configuration[ConfigurationInfo].constraints) + configuration = ConfigurationInfo( + constraints = constraints, + values = {}, + ) + + # The sample EngFlow RE image. + image = "docker://gcr.io/bazel-public/ubuntu2004-java11@sha256:69a78f121230c6d5cbfe2f4af8ce65481aa3f2acaaaf8e899df335f1ac1b35b5" + name = ctx.label.raw_target() + platform = ExecutionPlatformInfo( + label = ctx.label.raw_target(), + configuration = configuration, + executor_config = CommandExecutorConfig( + local_enabled = False, + remote_enabled = True, + use_limited_hybrid = False, + remote_execution_properties = { + "container-image": image, + }, + remote_execution_use_case = "buck2-default", + # TODO: Use output_paths + remote_output_paths = "strict", + ), + ) + + return [ + DefaultInfo(), + ExecutionPlatformRegistrationInfo(platforms = [platform]), + configuration, + PlatformInfo(label = str(name), configuration = configuration), + ] + +def _action_keys(ctx): + return [ + DefaultInfo(), + BuildModeInfo(cell = ctx.attrs.cell, mode = ctx.attrs.mode), + ] + +platforms = rule( + attrs = { + "cpu_configuration": attrs.dep(providers = [ConfigurationInfo]), + "os_configuration": attrs.dep(providers = [ConfigurationInfo]), + }, + impl = _platforms, +) + +action_keys = rule( + attrs = { + "cell": attrs.string(), + "mode": attrs.string(), + }, + impl = _action_keys, +) diff --git a/buck2/cpp/toolchains/BUCK b/buck2/cpp/toolchains/BUCK new file mode 100644 index 00000000..96b30a3b --- /dev/null +++ b/buck2/cpp/toolchains/BUCK @@ -0,0 +1,62 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. +load("@prelude//toolchains:python.bzl", "system_python_bootstrap_toolchain") +load("@prelude//toolchains:cxx.bzl", "cxx_tools_info_toolchain") +load("@prelude//toolchains:remote_test_execution.bzl", "remote_test_execution_toolchain") +load("@prelude//tests:test_toolchain.bzl", "noop_test_toolchain") +load("tools.bzl", "path_clang_tools") + +# We use the default system python toolchain in this example, focusing only on configuring the cpp toolchain. +system_python_bootstrap_toolchain( + name = "python_bootstrap", + visibility = ["PUBLIC"], +) + +# Custom clang tools that use g++ for linking. +path_clang_tools( + name = "clang_tools", + target_compatible_with = ["config//os:linux"], + visibility = ["PUBLIC"], +) + +# Custom cpp toolchain that is compatible with the remote worker environment. +cxx_tools_info_toolchain( + name = "cxx", + target_compatible_with = ["config//os:linux"], + cxx_tools_info = ":clang_tools", + visibility = ["PUBLIC"], +) + +# Default toolchain for remote execution of tests. +# Note it defines a profile with a capability that defines the `container-image` that matches the one defined in //platforms:remote_platform. +# Capabilities are passed to the RE service to find workers that match them as Platform options. +remote_test_execution_toolchain( + name = "remote_test_execution", + visibility = ["PUBLIC"], + default_profile = "cxx_re_toolchain", + profiles = { + "cxx_re_toolchain": { + "use_case": "cxx-testing", + "capabilities": { + "container-image" : "docker://gcr.io/bazel-public/ubuntu2004-java11@sha256:69a78f121230c6d5cbfe2f4af8ce65481aa3f2acaaaf8e899df335f1ac1b35b5", + }, + } + }, +) + +# In newer versions of buck2 this toolchain is needed `noop_test_toolchain`. +noop_test_toolchain( + name = "test", + visibility = ["PUBLIC"], +) diff --git a/buck2/cpp/toolchains/tools.bzl b/buck2/cpp/toolchains/tools.bzl new file mode 100644 index 00000000..1c3bc720 --- /dev/null +++ b/buck2/cpp/toolchains/tools.bzl @@ -0,0 +1,41 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("@prelude//cxx:cxx_toolchain_types.bzl", "LinkerType") +load("@prelude//toolchains:cxx.bzl", "CxxToolsInfo") + +# This def is similar to the one in https://github.com/facebook/buck2/blob/804d62242214455d51787f7c8c96a1e12c75ec32/prelude/toolchains/cxx/clang/tools.bzl +# The main difference is we set linker to "g++" to match the cpp tools installed in the sample docker container. +def _path_clang_tools_impl(_ctx) -> list[Provider]: + return [ + DefaultInfo(), + CxxToolsInfo( + compiler = "clang", + compiler_type = "clang", + cxx_compiler = "clang++", + asm_compiler = "clang", + asm_compiler_type = "clang", + rc_compiler = None, + cvtres_compiler = None, + archiver = "ar", + archiver_type = "gnu", + linker = "g++", + linker_type = LinkerType("gnu"), + ), + ] + +path_clang_tools = rule( + impl = _path_clang_tools_impl, + attrs = {}, +) diff --git a/buck2/golang/.buckconfig b/buck2/golang/.buckconfig new file mode 100644 index 00000000..e411992c --- /dev/null +++ b/buck2/golang/.buckconfig @@ -0,0 +1,35 @@ +[cells] +root = . +prelude = prelude +toolchains = toolchains +none = none + +[cell_aliases] +config = prelude +fbcode = none +fbsource = none +buck = none + +[external_cells] +prelude = bundled + +[parser] +target_platform_detector_spec = target:root//...->root//platforms:remote_platform + +[buck2] +digest_algorithms = SHA256 + +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + +[build] +execution_platforms = root//platforms:remote_platform + +[project] +ignore = .git + +[re] +remote_execution_test_build_mode = root//platforms:remote_execution_action_keys diff --git a/buck2/golang/.buckroot b/buck2/golang/.buckroot new file mode 100644 index 00000000..e69de29b diff --git a/buck2/golang/.gitignore b/buck2/golang/.gitignore new file mode 100644 index 00000000..0a0ddb2e --- /dev/null +++ b/buck2/golang/.gitignore @@ -0,0 +1 @@ +/buck-out diff --git a/buck2/golang/README.md b/buck2/golang/README.md new file mode 100644 index 00000000..ae6db264 --- /dev/null +++ b/buck2/golang/README.md @@ -0,0 +1,54 @@ +# EngFlow RE + Buck2 Go example + +This example demonstrates use of EngFlow RE for a simple Go lang project built with [Buck2](https://github.com/facebook/buck2) using the prelude. + +It is based on three existing samples in the Buck2 upstream repo and the EngFlow samples repo: + +* Simple go project with prelude - https://github.com/facebook/buck2/tree/main/examples/with_prelude/go +* Buck2 remote execution integration with EngFlow - https://github.com/facebook/buck2/tree/main/examples/remote_execution/engflow +* EngFlow go example - https://github.com/EngFlow/example/tree/main/go + +### Example structure + +In the `platforms` cell we specify: +* The platform used for remote execution in this project `root//platforms:remote_platform`, which includes the definition of the Docker image used for remote execution, and that defines constraints for targets to run in the remote execution environment. This platform provides an `ExecutionPlatformRegistrationInfo`. +* The action keys `root//platforms:remote_execution_action_keys`, which provides a default `BuildModeInfo` that is needed for RE of tests to function properly. +* The platform `image` configured in `platforms/defs.bzl`, notably, uses a different image than other Buck2 samples in this repo. Specifically, it uses a public AWS image that has `go` preinstalled. This is because, unlike Bazel go rules, Buck2 go rules do not include a hermetic go binary. Image details can be found in https://gallery.ecr.aws/docker/library/golang. he Dockerfile can be found in https://github.com/docker-library/golang/blob/master/1.23/bookworm/Dockerfile. + +In the `toolchains` cell we specify: + +* The remote go toolchain `root//toolchains:remote_go_toolchain` and remote go bootstrap toolchain `root//toolchains:remote_go_bootstrap_toolchain`, which are compatible with the remote execution environment. These toolchains are configured for `go_arch` set to `amd64` and `go_os` set to `linux`. +* The remote test execution toolchain, `root//toolchains:remote_test_execution_toolchain`. This toolchain defines platform options in the form of `capabilities`. Critically these include the `container-image`. This toolchain is identical to the one in the `buck2/cpp` sample in this repo. + +The `main` cell and `library` cell: + +* Contains a copied version of https://github.com/facebook/buck2/tree/main/examples/with_prelude/go that works with Buck2 and RE as configured in this sample project. + +To test this cell with RE run (after setting up `.buckconfig` as indicated below): + +``` +buck2 test --remote-only //go/greeting:greeting_test +``` + +You can also build the `main` for this sample by running: + +``` +buck2 build --remote-only //go:hello +``` + +### Relevant configs in `.buckconfig` + +The EngFlow endpoint and certificate should be configured as the +following: + +```ini +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + ``` + +To obtain the value of ``, log into https://.cluster.engflow.com/gettingstarted and obtain the value of `x-engflow-auth-token` in section `Method 2: JWT`, take note of this value. Then set `AUTH_HTTP_HEADERS` with the value `x-engflow-auth-method:jwt-v0,x-engflow-auth-token:. + +Note for CI runs, the auth method used is [Github Tokens](https://docs.engflow.com/re/config/authentication.html#github-tokens). diff --git a/buck2/golang/go/BUCK b/buck2/golang/go/BUCK new file mode 100644 index 00000000..7f4abea3 --- /dev/null +++ b/buck2/golang/go/BUCK @@ -0,0 +1,23 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +go_binary( + name = "hello", + srcs = ["main.go"], + deps = [ + "//go/greeting:greeting", + ], + # Disable cgo as clang is not available in the container. + cgo_enabled = False, +) diff --git a/buck2/golang/go/greeting/BUCK b/buck2/golang/go/greeting/BUCK new file mode 100644 index 00000000..ff68cbb7 --- /dev/null +++ b/buck2/golang/go/greeting/BUCK @@ -0,0 +1,26 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +go_library( + name = "greeting", + srcs = glob(["*.go"]), + visibility = ["PUBLIC"], +) + +go_test( + name = "greeting_test", + srcs = glob(["*.go"]), + # Disable cgo as clang is not available in the container. + cgo_enabled = False, +) diff --git a/buck2/golang/go/greeting/greeting.go b/buck2/golang/go/greeting/greeting.go new file mode 100644 index 00000000..f089ff9d --- /dev/null +++ b/buck2/golang/go/greeting/greeting.go @@ -0,0 +1,7 @@ + +package greeting + +// Greeting returns a greeting message +func Greeting() string { + return "Hello, world!" +} diff --git a/buck2/golang/go/greeting/greeting_test.go b/buck2/golang/go/greeting/greeting_test.go new file mode 100644 index 00000000..beefdfce --- /dev/null +++ b/buck2/golang/go/greeting/greeting_test.go @@ -0,0 +1,9 @@ +package greeting + +import "testing" + +func TestHello(t *testing.T) { + if Greeting() != "Hello, world!" { + t.Errorf("Greeting() = %v, want \"Hello, world!\"", Greeting()) + } +} diff --git a/buck2/golang/go/main.go b/buck2/golang/go/main.go new file mode 100644 index 00000000..9750cfb8 --- /dev/null +++ b/buck2/golang/go/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "fmt" + + "go/greeting" +) + +func main() { + fmt.Println(greeting.Greeting()) +} diff --git a/buck2/golang/platforms/BUCK b/buck2/golang/platforms/BUCK new file mode 100644 index 00000000..cc1595f9 --- /dev/null +++ b/buck2/golang/platforms/BUCK @@ -0,0 +1,30 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load(":defs.bzl", "platforms") +load(":defs.bzl", "action_keys") + +# This platform configures details of remote execution. +platforms( + name = "remote_platform", +) + +# This action_key provides a default BuildModeInfo that is needed for RE of tests to function properly. +# The values in `cell` and `mode` can be used, in practice, to create cache silos. Any values can be given to these attributes. +action_keys( + name = "remote_execution_action_keys", + cell = "standard", + mode = "standard", + visibility = ["PUBLIC"], +) diff --git a/buck2/golang/platforms/defs.bzl b/buck2/golang/platforms/defs.bzl new file mode 100644 index 00000000..d0afeb35 --- /dev/null +++ b/buck2/golang/platforms/defs.bzl @@ -0,0 +1,70 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +# This platform is essentially the same as the one provided in https://github.com/facebook/buck2/blob/804d62242214455d51787f7c8c96a1e12c75ec32/examples/remote_execution/engflow/platforms/defs.bzl +# The main difference is we enable passing CPU and OS constraints and we use the sample EngFlow RE image. +load("@prelude//:build_mode.bzl", "BuildModeInfo") + +def _platforms(ctx): + constraints = dict() + configuration = ConfigurationInfo( + constraints = constraints, + values = {}, + ) + + # A bookworm image with go pre-installed. + # Unlike Bazel go_toolchain, Buck2 go_toolchain does not include a hermetic go binary. Image details can be found in https://gallery.ecr.aws/docker/library/golang. + # The Dockerfile can be found in https://github.com/docker-library/golang/blob/master/1.23/bookworm/Dockerfile. + image = "docker://public.ecr.aws/docker/library/golang:1.23.3-bookworm@sha256:3f3b9daa3de608f3e869cd2ff8baf21555cf0fca9fd34251b8f340f9b7c30ec5" + name = ctx.label.raw_target() + platform = ExecutionPlatformInfo( + label = ctx.label.raw_target(), + configuration = configuration, + executor_config = CommandExecutorConfig( + local_enabled = False, + remote_enabled = True, + use_limited_hybrid = False, + remote_execution_properties = { + "container-image": image, + }, + remote_execution_use_case = "buck2-default", + # TODO: Use output_paths + remote_output_paths = "strict", + ), + ) + + return [ + DefaultInfo(), + ExecutionPlatformRegistrationInfo(platforms = [platform]), + PlatformInfo(label = str(name), configuration = configuration), + ] + +def _action_keys(ctx): + return [ + DefaultInfo(), + BuildModeInfo(cell = ctx.attrs.cell, mode = ctx.attrs.mode), + ] + +platforms = rule( + attrs = {}, + impl = _platforms, +) + +action_keys = rule( + attrs = { + "cell": attrs.string(), + "mode": attrs.string(), + }, + impl = _action_keys, +) diff --git a/buck2/golang/toolchains/BUCK b/buck2/golang/toolchains/BUCK new file mode 100644 index 00000000..95bf51e9 --- /dev/null +++ b/buck2/golang/toolchains/BUCK @@ -0,0 +1,65 @@ + +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("defs.bzl", "remote_go_toolchain", "remote_go_bootstrap_toolchain") +load("@prelude//toolchains:cxx.bzl", "cxx_tools_info_toolchain") +load("@prelude//toolchains:python.bzl", "system_python_bootstrap_toolchain") +load("@prelude//toolchains:remote_test_execution.bzl", "remote_test_execution_toolchain") +load("@prelude//tests:test_toolchain.bzl", "noop_test_toolchain") + +# Python toolchain used in scripts that bootstrap other aspects of the Buck2 prelude. +system_python_bootstrap_toolchain( + name = "python_bootstrap", + visibility = ["PUBLIC"], +) + +remote_go_bootstrap_toolchain( + name = "go_bootstrap", + visibility = ["PUBLIC"], +) + +# c++ toolchain required implicitly for py targets. +cxx_tools_info_toolchain( + name = "cxx", + visibility = ["PUBLIC"], +) + +remote_go_toolchain( + name = "go", + visibility = ["PUBLIC"], +) + +# Default toolchain for remote execution of tests. +# Note it defines a profile with a capability that defines the `container-image` that matches the one defined in //platforms:remote_platform. +# Capabilities are passed to the RE service to find workers that match them as Platform options. +remote_test_execution_toolchain( + name = "remote_test_execution", + visibility = ["PUBLIC"], + default_profile = "cxx_re_toolchain", + profiles = { + "cxx_re_toolchain": { + "use_case": "cxx-testing", + "capabilities": { + "container-image" : "docker://public.ecr.aws/docker/library/golang:1.23.3-bookworm@sha256:3f3b9daa3de608f3e869cd2ff8baf21555cf0fca9fd34251b8f340f9b7c30ec5", + }, + } + }, +) + +# In some cases the execution of test can fail looking for this `noop_test_toolchain`. +noop_test_toolchain( + name = "test", + visibility = ["PUBLIC"], +) diff --git a/buck2/golang/toolchains/defs.bzl b/buck2/golang/toolchains/defs.bzl new file mode 100644 index 00000000..6a6ac3fc --- /dev/null +++ b/buck2/golang/toolchains/defs.bzl @@ -0,0 +1,94 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("@prelude//go:toolchain.bzl", "GoToolchainInfo") +load("@prelude//go_bootstrap:go_bootstrap.bzl", "GoBootstrapToolchainInfo") +load("@prelude//os_lookup:defs.bzl", "ScriptLanguage") +load("@prelude//utils:cmd_script.bzl", "cmd_script") + +def _remote_go_bootstrap_toolchain_impl(ctx): + go_arch = "amd64" + go_os = "linux" + + script_language = ScriptLanguage("sh") + go = "go" + + return [ + DefaultInfo(), + GoBootstrapToolchainInfo( + env_go_arch = go_arch, + env_go_os = go_os, + go = RunInfo(cmd_script(ctx, "go", cmd_args(go), script_language)), + go_wrapper = ctx.attrs.go_wrapper[RunInfo], + ), + ] + +remote_go_bootstrap_toolchain = rule( + impl = _remote_go_bootstrap_toolchain_impl, + doc = """Example remote go toolchain rules. Usage: + remote_go_bootstrap_toolchain( + name = "go_bootstrap", + visibility = ["PUBLIC"], + )""", + attrs = { + "go_wrapper": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//go/tools:go_wrapper_py")), + }, + is_toolchain_rule = True, +) + +def _remote_go_toolchain_impl(ctx): + go_arch = "amd64" + go_os = "linux" + + script_language = ScriptLanguage("sh") + go = "go" + + return [ + DefaultInfo(), + GoToolchainInfo( + assembler = RunInfo(cmd_script(ctx, "asm", cmd_args(go, "tool", "asm"), script_language)), + cgo = RunInfo(cmd_script(ctx, "cgo", cmd_args(go, "tool", "cgo"), script_language)), + cgo_wrapper = ctx.attrs.cgo_wrapper[RunInfo], + concat_files = ctx.attrs.concat_files[RunInfo], + compiler = RunInfo(cmd_script(ctx, "compile", cmd_args(go, "tool", "compile"), script_language)), + cover = RunInfo(cmd_script(ctx, "cover", cmd_args(go, "tool", "cover"), script_language)), + env_go_arch = go_arch, + env_go_os = go_os, + external_linker_flags = [], + gen_stdlib_importcfg = ctx.attrs.gen_stdlib_importcfg[RunInfo], + go = RunInfo(cmd_script(ctx, "go", cmd_args(go), script_language)), + go_wrapper = ctx.attrs.go_wrapper[RunInfo], + linker = RunInfo(cmd_script(ctx, "link", cmd_args(go, "tool", "link"), script_language)), + packer = RunInfo(cmd_script(ctx, "pack", cmd_args(go, "tool", "pack"), script_language)), + linker_flags = [], + assembler_flags = [], + compiler_flags = [], + ), + ] + +remote_go_toolchain = rule( + impl = _remote_go_toolchain_impl, + doc = """Example remote go toolchain rules. Usage: + remote_go_toolchain( + name = "go", + visibility = ["PUBLIC"], + )""", + attrs = { + "cgo_wrapper": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//go/tools:cgo_wrapper")), + "concat_files": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//go_bootstrap/tools:go_concat_files")), + "gen_stdlib_importcfg": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//go/tools:gen_stdlib_importcfg")), + "go_wrapper": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//go_bootstrap/tools:go_go_wrapper")), + }, + is_toolchain_rule = True, +) diff --git a/buck2/python/.buckconfig b/buck2/python/.buckconfig new file mode 100644 index 00000000..e411992c --- /dev/null +++ b/buck2/python/.buckconfig @@ -0,0 +1,35 @@ +[cells] +root = . +prelude = prelude +toolchains = toolchains +none = none + +[cell_aliases] +config = prelude +fbcode = none +fbsource = none +buck = none + +[external_cells] +prelude = bundled + +[parser] +target_platform_detector_spec = target:root//...->root//platforms:remote_platform + +[buck2] +digest_algorithms = SHA256 + +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + +[build] +execution_platforms = root//platforms:remote_platform + +[project] +ignore = .git + +[re] +remote_execution_test_build_mode = root//platforms:remote_execution_action_keys diff --git a/buck2/python/.buckroot b/buck2/python/.buckroot new file mode 100644 index 00000000..e69de29b diff --git a/buck2/python/.gitignore b/buck2/python/.gitignore new file mode 100644 index 00000000..0a0ddb2e --- /dev/null +++ b/buck2/python/.gitignore @@ -0,0 +1 @@ +/buck-out diff --git a/buck2/python/README.md b/buck2/python/README.md new file mode 100644 index 00000000..b2e63da2 --- /dev/null +++ b/buck2/python/README.md @@ -0,0 +1,57 @@ +# EngFlow RE + Buck2 python example + +This example demonstrates use of EngFlow RE for a simple python project built with [Buck2](https://github.com/facebook/buck2) using the prelude. + +It is based on three existing samples in the Buck2 upstream repo and the EngFlow samples repo: + +* Simple python project with prelude - https://github.com/facebook/buck2/tree/main/examples/with_prelude/python +* Buck2 remote execution integration with EngFlow - https://github.com/facebook/buck2/tree/main/examples/remote_execution/engflow +* EngFlow python example - https://github.com/EngFlow/example/tree/main/python + +### Example structure + +In the `platforms` cell we specify: +* The platform used for remote execution in this project `root//platforms:remote_platform`, which includes the definition of the Docker image used for remote execution, and that defines constraints for targets to run in the remote execution environment. This platform provides an `ExecutionPlatformRegistrationInfo`. +* The action keys `root//platforms:remote_execution_action_keys`, which provides a default `BuildModeInfo` that is needed for RE of tests to function properly. + +In the `toolchains` cell we specify: + +* The remote python toolchain `root//toolchains:remote_python_toolchain` that is compatible with the remote execution environment (uses by default `python3`). +* The remote test execution toolchain, `root//toolchains:remote_test_execution_toolchain`. This toolchain defines platform options in the form of `capabilities`. Critically these include the `container-image`. This toolchain is identical to the one in the `buck2/cpp` sample in this repo. + +The `main` cell and `library` cell: + +* Contains an copied version of https://github.com/facebook/buck2/tree/main/examples/with_prelude/python that works with Buck2 and RE as configured in this sample project. + +To test these cells with RE run (after setting up `.buckconfig` as indicated below): + +``` +buck2 build --remote-only //main:check_main +``` + +The `hello` cell: + +* Contains a modified version of the python sample in https://github.com/EngFlow/example/tree/main/python that works with Buck2 and RE as configured in this sample project. + +To test this cell with RE run (after setting up `.buckconfig` as indicated below): + +``` +buck2 test --remote-only //hello:hello_unittest_test +``` + +### Relevant configs in `.buckconfig` + +The EngFlow endpoint and certificate should be configured as the +following: + +```ini +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + ``` + +To obtain the value of ``, log into https://.cluster.engflow.com/gettingstarted and obtain the value of `x-engflow-auth-token` in section `Method 2: JWT`, take note of this value. Then set `AUTH_HTTP_HEADERS` with the value `x-engflow-auth-method:jwt-v0,x-engflow-auth-token:. + +Note for CI runs, the auth method used is [Github Tokens](https://docs.engflow.com/re/config/authentication.html#github-tokens). diff --git a/buck2/python/hello/BUCK b/buck2/python/hello/BUCK new file mode 100644 index 00000000..d9902ed7 --- /dev/null +++ b/buck2/python/hello/BUCK @@ -0,0 +1,33 @@ + +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +python_library( + name = "hellolib", + srcs = ["hello.py"], + base_module = "hellolib", + visibility = ["PUBLIC"], +) + +python_binary( + name = "main", + main = "main.py", + deps = [":hellolib"], +) + +python_test( + name = "hello_unittest_test", + srcs = ["hello_unittest_test.py"], + deps = [":hellolib"], +) diff --git a/buck2/python/hello/hello.py b/buck2/python/hello/hello.py new file mode 100644 index 00000000..5a6715cd --- /dev/null +++ b/buck2/python/hello/hello.py @@ -0,0 +1,12 @@ +"""Example Python module.""" + +import sys + + +def hello(): + return "Hello" + + +def goodbye(): + print("goodbye called", file=sys.stderr) + return "Goodbye" diff --git a/buck2/python/hello/hello_unittest_test.py b/buck2/python/hello/hello_unittest_test.py new file mode 100644 index 00000000..ae6e0e9d --- /dev/null +++ b/buck2/python/hello/hello_unittest_test.py @@ -0,0 +1,18 @@ +"""An example Python test using Python's built-in unittest module.""" + +import unittest + +from hellolib.hello import hello +from hellolib.hello import goodbye + + +class HelloTest(unittest.TestCase): + def test_hello(self): + self.assertEqual("Hello", hello()) + + def test_goodbye(self): + self.assertEqual("Goodbye", goodbye()) + + +if __name__ == "__main__": + unittest.main() diff --git a/buck2/python/hello/main.py b/buck2/python/hello/main.py new file mode 100644 index 00000000..8c1e7f0e --- /dev/null +++ b/buck2/python/hello/main.py @@ -0,0 +1,9 @@ +from hellolib.hello import hello + + +def main(): + print(hello.hello()) + + +if __name__ == "__main__": + main() diff --git a/buck2/python/library/BUCK b/buck2/python/library/BUCK new file mode 100644 index 00000000..d63a1231 --- /dev/null +++ b/buck2/python/library/BUCK @@ -0,0 +1,20 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +python_library( + name = "printlib", + srcs = ["print.py"], + base_module = "printlib", + visibility = ["PUBLIC"], +) diff --git a/buck2/python/library/print.py b/buck2/python/library/print.py new file mode 100644 index 00000000..f9711d55 --- /dev/null +++ b/buck2/python/library/print.py @@ -0,0 +1,16 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +def print_string(string): + print(string) diff --git a/buck2/python/main/BUCK b/buck2/python/main/BUCK new file mode 100644 index 00000000..51f1e797 --- /dev/null +++ b/buck2/python/main/BUCK @@ -0,0 +1,27 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("//test_utils.bzl", "assert_output") + +python_binary( + name = "main", + main = "main.py", + deps = ["//library:printlib"], +) + +assert_output( + name = "check_main", + command = "$(exe_target :main)", + output = "hello world from python toolchain", +) diff --git a/buck2/python/main/main.py b/buck2/python/main/main.py new file mode 100644 index 00000000..bcbc12a9 --- /dev/null +++ b/buck2/python/main/main.py @@ -0,0 +1,17 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +from printlib.print import print_string + +print_string("hello world from python toolchain") diff --git a/buck2/python/platforms/BUCK b/buck2/python/platforms/BUCK new file mode 100644 index 00000000..cc1595f9 --- /dev/null +++ b/buck2/python/platforms/BUCK @@ -0,0 +1,30 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load(":defs.bzl", "platforms") +load(":defs.bzl", "action_keys") + +# This platform configures details of remote execution. +platforms( + name = "remote_platform", +) + +# This action_key provides a default BuildModeInfo that is needed for RE of tests to function properly. +# The values in `cell` and `mode` can be used, in practice, to create cache silos. Any values can be given to these attributes. +action_keys( + name = "remote_execution_action_keys", + cell = "standard", + mode = "standard", + visibility = ["PUBLIC"], +) diff --git a/buck2/python/platforms/defs.bzl b/buck2/python/platforms/defs.bzl new file mode 100644 index 00000000..d93a8bd7 --- /dev/null +++ b/buck2/python/platforms/defs.bzl @@ -0,0 +1,68 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +# This platform is essentially the same as the one provided in https://github.com/facebook/buck2/blob/804d62242214455d51787f7c8c96a1e12c75ec32/examples/remote_execution/engflow/platforms/defs.bzl +# The main difference is we enable passing CPU and OS constraints and we use the sample EngFlow RE image. +load("@prelude//:build_mode.bzl", "BuildModeInfo") + +def _platforms(ctx): + constraints = dict() + configuration = ConfigurationInfo( + constraints = constraints, + values = {}, + ) + + # The sample EngFlow RE image. + image = "docker://gcr.io/bazel-public/ubuntu2004-java11@sha256:69a78f121230c6d5cbfe2f4af8ce65481aa3f2acaaaf8e899df335f1ac1b35b5" + name = ctx.label.raw_target() + platform = ExecutionPlatformInfo( + label = ctx.label.raw_target(), + configuration = configuration, + executor_config = CommandExecutorConfig( + local_enabled = False, + remote_enabled = True, + use_limited_hybrid = False, + remote_execution_properties = { + "container-image": image, + }, + remote_execution_use_case = "buck2-default", + # TODO: Use output_paths + remote_output_paths = "strict", + ), + ) + + return [ + DefaultInfo(), + ExecutionPlatformRegistrationInfo(platforms = [platform]), + PlatformInfo(label = str(name), configuration = configuration), + ] + +def _action_keys(ctx): + return [ + DefaultInfo(), + BuildModeInfo(cell = ctx.attrs.cell, mode = ctx.attrs.mode), + ] + +platforms = rule( + attrs = {}, + impl = _platforms, +) + +action_keys = rule( + attrs = { + "cell": attrs.string(), + "mode": attrs.string(), + }, + impl = _action_keys, +) diff --git a/buck2/python/test_utils.bzl b/buck2/python/test_utils.bzl new file mode 100644 index 00000000..58dd05ee --- /dev/null +++ b/buck2/python/test_utils.bzl @@ -0,0 +1,21 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +def assert_output(name, command, output): + return native.genrule( + name = name, + bash = command + " | grep \"" + output + "\" && touch \"$OUT\"", + cmd_exe = command + " | findstr \"" + output + "\" && type nul > \"$OUT\"", + out = "out.txt", + ) diff --git a/buck2/python/toolchains/BUCK b/buck2/python/toolchains/BUCK new file mode 100644 index 00000000..8bc0f45e --- /dev/null +++ b/buck2/python/toolchains/BUCK @@ -0,0 +1,66 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("defs.bzl", "remote_python_toolchain") +load("@prelude//toolchains:python.bzl", "system_python_bootstrap_toolchain") +load("@prelude//toolchains:cxx.bzl", "cxx_tools_info_toolchain") +load("@prelude//toolchains:genrule.bzl", "system_genrule_toolchain") +load("@prelude//toolchains:remote_test_execution.bzl", "remote_test_execution_toolchain") +load("@prelude//tests:test_toolchain.bzl", "noop_test_toolchain") + +# Python toolchain used in scripts that bootstrap other aspects of the Buck2 prelude. +system_python_bootstrap_toolchain( + name = "python_bootstrap", + visibility = ["PUBLIC"], +) + +# The remote python toolchain. Uses python3, the rest is just default. +remote_python_toolchain( + name = "python", + visibility = ["PUBLIC"], +) + +# c++ toolchain required implcitly for py targets. +cxx_tools_info_toolchain( + name = "cxx", + visibility = ["PUBLIC"], +) + +system_genrule_toolchain( + name = "genrule", + visibility = ["PUBLIC"], +) + +# Default toolchain for remote execution of tests. +# Note it defines a profile with a capability that defines the `container-image` that matches the one defined in //platforms:remote_platform. +# Capabilities are passed to the RE service to find workers that match them as Platform options. +remote_test_execution_toolchain( + name = "remote_test_execution", + visibility = ["PUBLIC"], + default_profile = "cxx_re_toolchain", + profiles = { + "cxx_re_toolchain": { + "use_case": "cxx-testing", + "capabilities": { + "container-image" : "docker://gcr.io/bazel-public/ubuntu2004-java11@sha256:69a78f121230c6d5cbfe2f4af8ce65481aa3f2acaaaf8e899df335f1ac1b35b5", + }, + } + }, +) + +# In some cases the execution of test can fail looking for this `noop_test_toolchain`. +noop_test_toolchain( + name = "test", + visibility = ["PUBLIC"], +) diff --git a/buck2/python/toolchains/defs.bzl b/buck2/python/toolchains/defs.bzl new file mode 100644 index 00000000..003595f5 --- /dev/null +++ b/buck2/python/toolchains/defs.bzl @@ -0,0 +1,64 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load( + "@prelude//:artifacts.bzl", + "ArtifactGroupInfo", +) +load( + "@prelude//python:toolchain.bzl", + "PythonPlatformInfo", + "PythonToolchainInfo", +) + +def _remote_python_toolchain_impl(ctx): + """ + A very simple toolchain that is hardcoded to use python3. + """ + + return [ + DefaultInfo(), + PythonToolchainInfo( + binary_linker_flags = [], + linker_flags = [], + fail_with_message = ctx.attrs._fail_with_message[RunInfo], + generate_static_extension_info = ctx.attrs._generate_static_extension_info, + make_source_db = ctx.attrs._make_source_db[RunInfo], + make_source_db_no_deps = ctx.attrs._make_source_db_no_deps[RunInfo], + host_interpreter = RunInfo(args = ["python3"]), + interpreter = RunInfo(args = ["python3"]), + make_py_package_modules = ctx.attrs._make_py_package_modules[RunInfo], + make_py_package_inplace = ctx.attrs._make_py_package_inplace[RunInfo], + compile = RunInfo(args = ["echo", "COMPILEINFO"]), + package_style = "inplace", + pex_extension = ".pex", + native_link_strategy = "separate", + runtime_library = ctx.attrs._runtime_library, + ), + PythonPlatformInfo(name = "x86_64"), + ] + +remote_python_toolchain = rule( + impl = _remote_python_toolchain_impl, + attrs = { + "_fail_with_message": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:fail_with_message")), + "_generate_static_extension_info": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:generate_static_extension_info")), + "_make_py_package_inplace": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_py_package_inplace")), + "_make_py_package_modules": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_py_package_modules")), + "_make_source_db": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_source_db")), + "_make_source_db_no_deps": attrs.default_only(attrs.dep(providers = [RunInfo], default = "prelude//python/tools:make_source_db_no_deps")), + "_runtime_library": attrs.default_only(attrs.dep(providers = [ArtifactGroupInfo], default = "prelude//python/runtime:bootstrap_files")), + }, + is_toolchain_rule = True, +) diff --git a/buck2/rust/.buckconfig b/buck2/rust/.buckconfig new file mode 100644 index 00000000..e411992c --- /dev/null +++ b/buck2/rust/.buckconfig @@ -0,0 +1,35 @@ +[cells] +root = . +prelude = prelude +toolchains = toolchains +none = none + +[cell_aliases] +config = prelude +fbcode = none +fbsource = none +buck = none + +[external_cells] +prelude = bundled + +[parser] +target_platform_detector_spec = target:root//...->root//platforms:remote_platform + +[buck2] +digest_algorithms = SHA256 + +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + +[build] +execution_platforms = root//platforms:remote_platform + +[project] +ignore = .git + +[re] +remote_execution_test_build_mode = root//platforms:remote_execution_action_keys diff --git a/buck2/rust/.buckroot b/buck2/rust/.buckroot new file mode 100644 index 00000000..e69de29b diff --git a/buck2/rust/.gitignore b/buck2/rust/.gitignore new file mode 100644 index 00000000..0a0ddb2e --- /dev/null +++ b/buck2/rust/.gitignore @@ -0,0 +1 @@ +/buck-out diff --git a/buck2/rust/BUCK b/buck2/rust/BUCK new file mode 100644 index 00000000..5eed858d --- /dev/null +++ b/buck2/rust/BUCK @@ -0,0 +1,37 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +rust_library( + name = "library", + srcs = glob( + ["src/**/*.rs"], + ), +) + +rust_binary( + name = "main", + srcs = glob( + ["bin/**/*.rs"], + ), + crate_root = "bin/main.rs", + deps = [":library"], +) + +rust_test( + name = "test", + srcs = glob( + ["test/**/*.rs"], + ), + deps = [":library"], +) diff --git a/buck2/rust/README.md b/buck2/rust/README.md new file mode 100644 index 00000000..8eefd092 --- /dev/null +++ b/buck2/rust/README.md @@ -0,0 +1,60 @@ +# EngFlow RE + Buck2 Rust example + +This example demonstrates use of EngFlow RE for a simple Rust project built with [Buck2](https://github.com/facebook/buck2) using the prelude. + +It is based on two existing samples in the Buck2 upstream repo: + +* Simple rust project with prelude - https://github.com/facebook/buck2/tree/main/examples/with_prelude/rust +* Buck2 remote execution integration with EngFlow - https://github.com/facebook/buck2/tree/main/examples/remote_execution/engflow + +### Example structure + +In the `platforms` cell we specify: +In the `platforms` cell we specify: +* The platform used for remote execution in this project `root//platforms:remote_platform`, which includes the definition of the Docker image used for remote execution, and that defines constraints for targets to run in the remote execution environment. This platform provides an `ExecutionPlatformRegistrationInfo` a `ConfigurationInfo` and a `PlatformInfo` to be able to be used in the `.buckconfig`. +* The action keys `root//platforms:remote_execution_action_keys`, which provides a default `BuildModeInfo` that is needed for RE of tests to function properly. +* The platform `image` configured in `platforms/defs.bzl`, notably, uses a different image than other Buck2 samples in this repo. Specifically, it uses a public AWS image that has `rust` preinstalled. This is because Buck2 rust rules do not include a hermetic rust toolchain. We use a bookworm image with rust pre-installed. Image details can be found in https://gallery.ecr.aws/docker/library/rust. The Dockerfile can be found in https://github.com/rust-lang/docker-rust/blob/700c4f146427808cfb1e07a646e4afabbe99da4f/stable/bullseye/Dockerfile. If a different version of `rust` or other tools is needed you should create your own image and publish it to a repo that is accessible from the cluster. + +In the `toolchains` cell we specify: + +* The remote rust toolchain `root//toolchains:remote_rust_toolchain` which is compatible with the remote execution environment. This toolchain is configured with the `rustc_target_triple` to match the remote execution environment, and the `compiler`, `clippy_driver` and `rustdoc` attrs are set to point to the location of the `rustc` binary in the image used for remote execution. +* The c++ toolchain `root//toolchains:cxx_tools_info_toolchain` that is compatible with the remote execution environment. +* The clang tools, `root//toolchains:path_clang_tools`, which is used by the c++ toolchain, and specifies the tools installed in the Docker image. +* The remote test execution toolchain, `root//toolchains:remote_test_execution_toolchain`. This toolchain defines platform options in the form of `capabilities`. Critically these include the `container-image`. This toolchain is identical to the one in the `buck2/cpp` sample in this repo. + +The `src`, `bin` and `test` cells: + +* Contain a copied version of https://github.com/facebook/buck2/tree/main/examples/with_prelude/rust that works with Buck2 and RE as configured in this sample project. + +* Key changes for remote execution in the top level `BUCK` file include setting environment variables to select the pre-installed rust toolchain in the container and set a custom value for `HOME`. This custom value is needed as `rustp` attempts to create a directory in the `HOME` location and we prefer this happen inside the `buck-out/` directory to guarantee actions do not modify any content outside of their scratch directory. + +To test the project with RE run (after setting up `.buckconfig` as indicated below): + +``` +buck2 test --remote-only //:test +``` + +You can also build the `main` for this sample by running: + +``` +buck2 build --remote-only //:main +``` + +Note the use of `--remote-only` to indicate remote execution should be used for the build / test command. + +### Relevant configs in `.buckconfig` + +The EngFlow endpoint and certificate should be configured as the +following: + +```ini +[buck2_re_client] +engine_address = .cluster.engflow.com +action_cache_address = .cluster.engflow.com +cas_address = .cluster.engflow.com +http_headers = + ``` + +To obtain the value of ``, log into https://.cluster.engflow.com/gettingstarted and obtain the value of `x-engflow-auth-token` in section `Method 2: JWT`, take note of this value. Then set `AUTH_HTTP_HEADERS` with the value `x-engflow-auth-method:jwt-v0,x-engflow-auth-token:. + +Note for CI runs, the auth method used is [Github Tokens](https://docs.engflow.com/re/config/authentication.html#github-tokens). diff --git a/buck2/rust/bin/main.rs b/buck2/rust/bin/main.rs new file mode 100644 index 00000000..54a4b8bf --- /dev/null +++ b/buck2/rust/bin/main.rs @@ -0,0 +1,3 @@ +fn main() { + library::print_hello(); +} diff --git a/buck2/rust/platforms/BUCK b/buck2/rust/platforms/BUCK new file mode 100644 index 00000000..8e4f659a --- /dev/null +++ b/buck2/rust/platforms/BUCK @@ -0,0 +1,32 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load(":defs.bzl", "platforms") +load(":defs.bzl", "action_keys") + +# This platform configures details of remote execution. +platforms( + name = "remote_platform", + cpu_configuration = "config//cpu:x86_64", + os_configuration = "config//os:linux", +) + +# This action_key provides a default BuildModeInfo that is needed for RE of tests to function properly. +# The values in `cell` and `mode` can be used, in practice, to create cache silos. Any values can be given to these attributes. +action_keys( + name = "remote_execution_action_keys", + cell = "standard", + mode = "standard", + visibility = ["PUBLIC"], +) diff --git a/buck2/rust/platforms/defs.bzl b/buck2/rust/platforms/defs.bzl new file mode 100644 index 00000000..f49a4283 --- /dev/null +++ b/buck2/rust/platforms/defs.bzl @@ -0,0 +1,75 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +# This platform is essentially the same as the one provided in https://github.com/facebook/buck2/blob/804d62242214455d51787f7c8c96a1e12c75ec32/examples/remote_execution/engflow/platforms/defs.bzl +# The main difference is we enable passing CPU and OS constraints and we use the sample EngFlow RE image. +load("@prelude//:build_mode.bzl", "BuildModeInfo") + +def _platforms(ctx): + constraints = dict() + constraints.update(ctx.attrs.cpu_configuration[ConfigurationInfo].constraints) + constraints.update(ctx.attrs.os_configuration[ConfigurationInfo].constraints) + configuration = ConfigurationInfo( + constraints = constraints, + values = {}, + ) + + # A bookworm image with rust pre-installed. Image details can be found in https://gallery.ecr.aws/docker/library/rust. + # Dockerfile can be found in https://github.com/rust-lang/docker-rust/blob/700c4f146427808cfb1e07a646e4afabbe99da4f/stable/bullseye/Dockerfile + image = "docker://public.ecr.aws/docker/library/rust:1.83.0-bullseye@sha256:24118f76a7da011b22a25b8e9dbdbb549ed29c1eba635d6aa4a9c9f5ed545066" + name = ctx.label.raw_target() + platform = ExecutionPlatformInfo( + label = ctx.label.raw_target(), + configuration = configuration, + executor_config = CommandExecutorConfig( + local_enabled = False, + remote_enabled = True, + use_limited_hybrid = False, + remote_execution_properties = { + "container-image": image, + }, + remote_execution_use_case = "buck2-default", + # TODO: Use output_paths + remote_output_paths = "strict", + ), + ) + + return [ + DefaultInfo(), + ExecutionPlatformRegistrationInfo(platforms = [platform]), + configuration, + PlatformInfo(label = str(name), configuration = configuration), + ] + +def _action_keys(ctx): + return [ + DefaultInfo(), + BuildModeInfo(cell = ctx.attrs.cell, mode = ctx.attrs.mode), + ] + +platforms = rule( + attrs = { + "cpu_configuration": attrs.dep(providers = [ConfigurationInfo]), + "os_configuration": attrs.dep(providers = [ConfigurationInfo]), + }, + impl = _platforms, +) + +action_keys = rule( + attrs = { + "cell": attrs.string(), + "mode": attrs.string(), + }, + impl = _action_keys, +) diff --git a/buck2/rust/src/lib.rs b/buck2/rust/src/lib.rs new file mode 100644 index 00000000..84c45251 --- /dev/null +++ b/buck2/rust/src/lib.rs @@ -0,0 +1,3 @@ +pub fn print_hello() { + println!("hello world from rust toolchain"); +} diff --git a/buck2/rust/test/test.rs b/buck2/rust/test/test.rs new file mode 100644 index 00000000..c5cdb345 --- /dev/null +++ b/buck2/rust/test/test.rs @@ -0,0 +1,4 @@ +#[test] +fn test_it_doesnt_crash() { + library::print_hello(); +} diff --git a/buck2/rust/toolchains/BUCK b/buck2/rust/toolchains/BUCK new file mode 100644 index 00000000..9fc11b68 --- /dev/null +++ b/buck2/rust/toolchains/BUCK @@ -0,0 +1,72 @@ + +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("defs.bzl", "remote_rust_toolchain", "path_clang_tools") +load("@prelude//toolchains:cxx.bzl", "cxx_tools_info_toolchain") +load("@prelude//toolchains:python.bzl", "system_python_bootstrap_toolchain") +load("@prelude//toolchains:remote_test_execution.bzl", "remote_test_execution_toolchain") +load("@prelude//tests:test_toolchain.bzl", "noop_test_toolchain") + +remote_rust_toolchain( + name = "rust", + default_edition = "2021", + visibility = ["PUBLIC"], + rustdoc = "/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu/bin/rustc", + compiler = "/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu/bin/rustc", + clippy_driver = "/usr/local/rustup/toolchains/1.83.0-x86_64-unknown-linux-gnu/bin/rustc", + rustc_target_triple = "x86_64-unknown-linux-gnu", +) + +# Python toolchain used in scripts that bootstrap other aspects of the Buck2 prelude. +system_python_bootstrap_toolchain( + name = "python_bootstrap", + visibility = ["PUBLIC"], +) + +# Custom clang tools that use g++ for linking. +path_clang_tools( + name = "clang_tools", + visibility = ["PUBLIC"], +) + +# Custom cpp toolchain that is compatible with the remote worker environment. +cxx_tools_info_toolchain( + name = "cxx", + cxx_tools_info = ":clang_tools", + visibility = ["PUBLIC"], +) + +# Default toolchain for remote execution of tests. +# Note it defines a profile with a capability that defines the `container-image` that matches the one defined in //platforms:remote_platform. +# Capabilities are passed to the RE service to find workers that match them as Platform options. +remote_test_execution_toolchain( + name = "remote_test_execution", + visibility = ["PUBLIC"], + default_profile = "cxx_re_toolchain", + profiles = { + "cxx_re_toolchain": { + "use_case": "cxx-testing", + "capabilities": { + "container-image" : "docker://public.ecr.aws/docker/library/rust:1.83.0-bullseye@sha256:24118f76a7da011b22a25b8e9dbdbb549ed29c1eba635d6aa4a9c9f5ed545066", + }, + } + }, +) + +# In some cases the execution of test can fail looking for this `noop_test_toolchain`. +noop_test_toolchain( + name = "test", + visibility = ["PUBLIC"], +) diff --git a/buck2/rust/toolchains/defs.bzl b/buck2/rust/toolchains/defs.bzl new file mode 100644 index 00000000..ada80a8c --- /dev/null +++ b/buck2/rust/toolchains/defs.bzl @@ -0,0 +1,89 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("@prelude//cxx:cxx_toolchain_types.bzl", "LinkerType") +load("@prelude//rust:rust_toolchain.bzl", "PanicRuntime", "RustToolchainInfo") +load("@prelude//toolchains:cxx.bzl", "CxxToolsInfo") + +# This def is similar to the one in https://github.com/facebook/buck2/blob/804d62242214455d51787f7c8c96a1e12c75ec32/prelude/toolchains/cxx/clang/tools.bzl +# The main difference is we set linker to "g++" to match the cpp tools installed in the sample docker container. +def _path_clang_tools_impl(_ctx) -> list[Provider]: + return [ + DefaultInfo(), + CxxToolsInfo( + compiler = "clang", + compiler_type = "clang", + cxx_compiler = "clang++", + asm_compiler = "clang", + asm_compiler_type = "clang", + rc_compiler = None, + cvtres_compiler = None, + archiver = "ar", + archiver_type = "gnu", + linker = "g++", + linker_type = LinkerType("gnu"), + ), + ] + +path_clang_tools = rule( + impl = _path_clang_tools_impl, + attrs = {}, +) + +def _remote_rust_toolchain_impl(ctx): + return [ + DefaultInfo(), + RustToolchainInfo( + allow_lints = ctx.attrs.allow_lints, + clippy_driver = RunInfo(args = [ctx.attrs.clippy_driver]), + clippy_toml = ctx.attrs.clippy_toml[DefaultInfo].default_outputs[0] if ctx.attrs.clippy_toml else None, + compiler = RunInfo(args = [ctx.attrs.compiler]), + default_edition = ctx.attrs.default_edition, + panic_runtime = PanicRuntime("unwind"), + deny_lints = ctx.attrs.deny_lints, + doctests = ctx.attrs.doctests, + nightly_features = ctx.attrs.nightly_features, + report_unused_deps = ctx.attrs.report_unused_deps, + rustc_binary_flags = ctx.attrs.rustc_binary_flags, + rustc_flags = ctx.attrs.rustc_flags, + rustc_target_triple = ctx.attrs.rustc_target_triple, + rustc_test_flags = ctx.attrs.rustc_test_flags, + rustdoc = RunInfo(args = [ctx.attrs.rustdoc]), + rustdoc_flags = ctx.attrs.rustdoc_flags, + warn_lints = ctx.attrs.warn_lints, + ), + ] + +remote_rust_toolchain = rule( + impl = _remote_rust_toolchain_impl, + attrs = { + "allow_lints": attrs.list(attrs.string(), default = []), + "clippy_driver": attrs.string(default = "clippy-driver"), + "clippy_toml": attrs.option(attrs.dep(providers = [DefaultInfo]), default = None), + "compiler": attrs.string(default = "rustc"), + "default_edition": attrs.option(attrs.string(), default = None), + "deny_lints": attrs.list(attrs.string(), default = []), + "doctests": attrs.bool(default = False), + "nightly_features": attrs.bool(default = False), + "report_unused_deps": attrs.bool(default = False), + "rustc_binary_flags": attrs.list(attrs.string(), default = []), + "rustc_flags": attrs.list(attrs.string(), default = []), + "rustc_target_triple": attrs.string(default = "x86_64-unknown-linux-gnu"), + "rustc_test_flags": attrs.list(attrs.string(), default = []), + "rustdoc": attrs.string(default = "rustdoc"), + "rustdoc_flags": attrs.list(attrs.string(), default = []), + "warn_lints": attrs.list(attrs.string(), default = []), + }, + is_toolchain_rule = True, +) diff --git a/bzlmod/README.md b/bzlmod/README.md new file mode 100644 index 00000000..2a5af0f8 --- /dev/null +++ b/bzlmod/README.md @@ -0,0 +1,4 @@ +# Bazel Modules (a.k.a. Bzlmod) Examples + +This directory contains sample projects demonstraing concepts specifically +related to [Bazel modules](https://bazel.build/external/overview#bzlmod). diff --git a/bzlmod/canonical-repo-name-injection/.gitignore b/bzlmod/canonical-repo-name-injection/.gitignore new file mode 100644 index 00000000..90214846 --- /dev/null +++ b/bzlmod/canonical-repo-name-injection/.gitignore @@ -0,0 +1 @@ +.aspect/ diff --git a/bzlmod/canonical-repo-name-injection/BUILD b/bzlmod/canonical-repo-name-injection/BUILD new file mode 100644 index 00000000..6021a863 --- /dev/null +++ b/bzlmod/canonical-repo-name-injection/BUILD @@ -0,0 +1,206 @@ +# Copyright 2024 EngFlow Inc. +# +# 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. + +load("@bazel_skylib//rules:common_settings.bzl", "string_flag") +load("@rules_js//js:defs.bzl", "js_binary") +load( + "//:repo-names.bzl", + "canonical_repo", + "gen_js_constants", + "repo_dir_variable", + "repo_name_variable", + "workspace_root", +) + +# This value propagates through the rules below. +# Try it with other targets of your choosing! +repo_target = "@pnpm" + +# The following value inspired the `repo_name_variable` rule. +# - A macro executes during the loading phase and doesn't see resolved aliases. +# - A rule executes during the analysis phase, after aliases have resolved. +#repo_target = "@bison_v3.3.2//bin:bison" + +# Demonstrates the macro-based approach. +genrule( + name = "repo-macros", + outs = ["repo-macros.txt"], + cmd = "printf '%s\n canonical_name: %s\n workspace_root: %s\n' >$@" % ( + repo_target, + canonical_repo(repo_target), + workspace_root(repo_target), + ), +) + +# Demonstrates the custom Make variable-based approach. Depends on the +# ":repo-target" alias to show how the variables have access to the underlying +# target. +genrule( + name = "repo-vars", + outs = ["repo-vars.txt"], + cmd = r"""printf '%%s\n' \ + '%s' \ + ' repo-name: $(repo-name)' \ + ' repo-dir: $(repo-dir)' >$@""" % repo_target, + toolchains = [ + ":repo-name", + ":repo-dir", + ], +) + +# This alias demonstrates how the rules from `repo-names.bzl` work with resolved +# aliases during the analysis phase. Calling the `canonical_repo()` and +# `workspace_root()` macros with ":repo-target" in this file will return the +# empty string, since macros execute during the loading phase. +alias( + name = "repo-target", + actual = repo_target, +) + +# These rules create custom variables that other rules can use by adding +# ":repo-name" and ":repo-dir" to their `toolchains` attribute. +# - https://bazel.build/reference/be/make-variables#custom_variables +# - https://bazel.build/rules/lib/providers/TemplateVariableInfo +repo_name_variable( + name = "repo-name", + dep = ":repo-target", +) + +repo_dir_variable( + name = "repo-dir", + dep = ":repo-target", +) + +# Run this program via the following commands for different values of +# `repo_target` above. `node` must be installed for the invocations outside of +# `bazel run`. +# +# ```txt +# bazel run --//:constants=genrule //:repo-dir-check +# node bazel-bin/repo-dir-check.mjs +# +# bazel run --//:constants=custom //:repo-dir-check +# node bazel-bin/repo-dir-check.mjs +# ``` +# +# Note the differences between: +# - the macro-generated repo dir and the variable- or rule-generated repo dir +# - where the repo dir is found when running under `bazel run` vs `node` +js_binary( + name = "repo-dir-check", + data = [ + ":constants-impl", + repo_target, + ], + entry_point = "repo-dir-check.mjs", +) + +# Determines which rule generates the `constants.js` module used by +# `:repo-dir-check`, based on the value of the `--//:constants` flag. +genrule( + name = "constants-impl", + srcs = select({ + ":genrule": [":genrule-constants"], + ":custom-rule": [":custom-rule-constants"], + }), + outs = ["constants.js"], + cmd = "cp $< $@", +) + +# The `--//:constants` command line flag determines whether `:constants-impl` +# selects `:genrule-constants` or `:custom-rule-constants` as input. +string_flag( + name = "constants", + build_setting_default = "genrule", + values = [ + "genrule", + "custom-rule", + ], +) + +config_setting( + name = "genrule", + flag_values = {":constants": "genrule"}, +) + +config_setting( + name = "custom-rule", + flag_values = {":constants": "custom-rule"}, +) + +# A genrule producing a constants module illustrating how to incorporate: +# - the `BINDIR` predefined Make variable +# - the `rlocationpaths` predefined variable, called on the ":repo-target" alias +# - the `canonical_name()` and `workspace_root()` macros, called during the +# loading phase on a variable +# - the `repo_name_variable` and `repo_dir_variable` targets, evaluated during +# the analysis phase, which supplies a custom variable as a `toolchains` +# attribute target +# +# Replacing `repo_target` with the string ":repo-target" in the macros below +# will produce the empty string, since the macros won't see the resolved alias. +genrule( + name = "genrule-constants", + srcs = [":repo-target"], + outs = ["genrule-constants.js"], + cmd = r"""printf 'module.exports.%%s;\n' \ + 'ruleName = "genrule-constants"' \ + 'target = "%s"' \ + 'binDir = "$(BINDIR)"' \ + 'location = "$(rlocationpaths :repo-target)"' \ + 'macroName = "%s"' \ + 'macroDir = "%s"' \ + 'repoName = "$(repo-name)"' \ + 'repoDir = "$(repo-dir)"' >$@""" % ( + repo_target, + canonical_repo(repo_target), + workspace_root(repo_target), + ), + toolchains = [ + ":repo-name", + ":repo-dir", + ], +) + +# A custom rule producing a constants module from its `vars`, `repo_names`, and +# `repo_dirs` attributes. +# +# This rule illustrates how to use: +# - The `rlocationpaths` predefined variable, called on the ":repo-target" alias +# - The `canonical_name()` and `workspace_root()` macros, called during the +# loading phase on a variable +# - The `repo_names` and `repo_dirs` attributes of type +# `attr.label_keyed_string_dict`, whose keys are resolved Target values +# (including aliases) during the analysis phase +# +# Note that: +# - For the `vars` attribute, the keys become constant names, and the values +# become constant values. +# - For the `repo_names` and `repo_dirs` attributes, the keys become constant +# values, and the values become constant names. +# +# Replacing `repo_target` with the string ":repo-target" in the macros below +# will produce the empty string, since the macros won't see the resolved alias. +gen_js_constants( + name = "custom-rule-constants", + repo_dirs = {":repo-target": "repoDir"}, + repo_names = {":repo-target": "repoName"}, + vars = { + "target": repo_target, + "location": "$(rlocationpaths :repo-target)", + "macroName": canonical_repo(repo_target), + "macroDir": workspace_root(repo_target), + }, + deps = [":repo-target"], +) diff --git a/bzlmod/canonical-repo-name-injection/MODULE.bazel b/bzlmod/canonical-repo-name-injection/MODULE.bazel new file mode 100644 index 00000000..43f4b952 --- /dev/null +++ b/bzlmod/canonical-repo-name-injection/MODULE.bazel @@ -0,0 +1,37 @@ +# Copyright 2024 EngFlow Inc. +# +# 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. + +"""Example module for canonical repo name injection""" + +# Main module +module( + name = "frobozz", + version = "1.2.3", +) + +# aspect_rules_js +bazel_dep(name = "aspect_rules_js", version = "2.0.1", repo_name = "rules_js") + +pnpm = use_extension("@rules_js//npm:extensions.bzl", "pnpm") +use_repo(pnpm, "pnpm") + +# rules_bison +bazel_dep(name = "rules_bison", version = "0.2.2") + +bison = use_extension( + "@rules_bison//bison/extensions:bison_repository_ext.bzl", + "bison_repository_ext", +) +bison.repository(version = "3.3.2") +use_repo(bison, "bison_v3.3.2") diff --git a/bzlmod/canonical-repo-name-injection/MODULE.bazel.lock b/bzlmod/canonical-repo-name-injection/MODULE.bazel.lock new file mode 100644 index 00000000..65704485 --- /dev/null +++ b/bzlmod/canonical-repo-name-injection/MODULE.bazel.lock @@ -0,0 +1,933 @@ +{ + "lockFileVersion": 11, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad", + "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", + "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/source.json": "87f12b449cd1d27d3e83840a59a6966d557e7c3c5f19e7b2e0361da5edc6b397", + "https://bcr.bazel.build/modules/aspect_rules_js/2.0.1/MODULE.bazel": "a09d32aa997ad899fcd88dc6e629188f03351994f0698bc32a9979c5bcfd5c31", + "https://bcr.bazel.build/modules/aspect_rules_js/2.0.1/source.json": "62bda0d34f3817af165d1903b890ecbf6e50d652492f8bb83682636e997b5619", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/rules_bison/0.2.2/MODULE.bazel": "4326371dd66dda3c04765cd7f1c64c5dbc064c673555078ec1e4f758ba77d4ba", + "https://bcr.bazel.build/modules/rules_bison/0.2.2/source.json": "a11082c4935d0927c2e90d5d5abd44ceeca81a40b07d96b7a21bebf166f78f42", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", + "https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a", + "https://bcr.bazel.build/modules/rules_m4/0.2.3/MODULE.bazel": "a201ad119823e1af5024240e1e1ef294425d9be73a698cb41c8450e6c8e107e3", + "https://bcr.bazel.build/modules/rules_m4/0.2.3/source.json": "d2fd4b91471317d0e6368ece3da2334884879ed6d6289591c7312944e50dea70", + "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e", + "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/source.json": "a77c307175a82982f0847fd6a8660db5b21440d8a9d073642cb4afa7a18612ff", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.22.1/source.json": "57226905e783bae7c37c2dd662be078728e48fa28ee4324a7eabcafb5a43d014", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.4/source.json": "a961f58a71e735aa9dcb2d79b288e06b0a2d860ba730302c8f11be411b76631e", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": { + "general": { + "bzlTransitiveDigest": "PjIds3feoYE8SGbbIq2SFTZy3zmxeO2tQevJZNDo7iY=", + "usagesDigest": "aLmqbvowmHkkBPve05yyDNGN7oh7QE9kBADr3QIZTZs=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_apple_cc": { + "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "ruleClassName": "_apple_cc_autoconf", + "attributes": {} + }, + "local_config_apple_cc_toolchains": { + "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "ruleClassName": "_apple_cc_autoconf_toolchains", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [ + [ + "apple_support~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@aspect_bazel_lib~//lib:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "3KydN9M+cGcn8Huu/umxX7Vk08sXz5lJeUxg/b0Gxjc=", + "usagesDigest": "Cfe43UxnexwXh6eindVSVzskoYyQKVcN0d7Q5GURnP8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "expand_template_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_to_directory_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "jq_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.7" + } + }, + "copy_to_directory_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "expand_template_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "jq_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "1.7" + } + }, + "coreutils_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "0.0.26" + } + }, + "copy_to_directory_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_directory_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "coreutils_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "0.0.26" + } + }, + "coreutils_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "0.0.26" + } + }, + "zstd_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:zstd_toolchain.bzl", + "ruleClassName": "zstd_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "yq_linux_s390x": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.25.2" + } + }, + "yq": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_host_alias_repo", + "attributes": {} + }, + "expand_template_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_directory_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "jq_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.7" + } + }, + "yq_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.25.2" + } + }, + "copy_directory_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "expand_template_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_toolchains_repo", + "attributes": { + "user_repository_name": "expand_template" + } + }, + "bats_assert": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "98ca3b685f8b8993e48ec057565e6e2abcc541034ed5b0e81f191505682037fd", + "urls": [ + "https://github.com/bats-core/bats-assert/archive/v2.1.0.tar.gz" + ], + "strip_prefix": "bats-assert-2.1.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"assert\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-assert\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "copy_to_directory_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "zstd_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:zstd_toolchain.bzl", + "ruleClassName": "zstd_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "yq_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + }, + "zstd_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:zstd_toolchain.bzl", + "ruleClassName": "zstd_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "bats_support": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "7815237aafeb42ddcc1b8c698fc5808026d33317d8701d5ec2396e9634e2918f", + "urls": [ + "https://github.com/bats-core/bats-support/archive/v0.3.0.tar.gz" + ], + "strip_prefix": "bats-support-0.3.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"support\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-support\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "bsd_tar_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "jq": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_host_alias_repo", + "attributes": {} + }, + "expand_template_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_to_directory_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "coreutils_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "0.0.26" + } + }, + "copy_directory_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_directory" + } + }, + "yq_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.25.2" + } + }, + "copy_to_directory_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "coreutils_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_toolchains_repo", + "attributes": { + "user_repository_name": "coreutils" + } + }, + "copy_directory_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "zstd_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:zstd_toolchain.bzl", + "ruleClassName": "zstd_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "zstd_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:zstd_toolchain.bzl", + "ruleClassName": "zstd_toolchains_repo", + "attributes": { + "user_repository_name": "zstd" + } + }, + "bats_file": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "9b69043241f3af1c2d251f89b4fcafa5df3f05e97b89db18d7c9bdf5731bb27a", + "urls": [ + "https://github.com/bats-core/bats-file/archive/v0.4.0.tar.gz" + ], + "strip_prefix": "bats-file-0.4.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"file\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-file\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "expand_template_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "jq_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.7" + } + }, + "bsd_tar_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar" + } + }, + "bats_toolchains": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "a1a9f7875aa4b6a9480ca384d5865f1ccf1b0b1faead6b47aa47d79709a5c5fd", + "urls": [ + "https://github.com/bats-core/bats-core/archive/v1.10.0.tar.gz" + ], + "strip_prefix": "bats-core-1.10.0", + "build_file_content": "load(\"@local_config_platform//:constraints.bzl\", \"HOST_CONSTRAINTS\")\nload(\"@aspect_bazel_lib//lib/private:bats_toolchain.bzl\", \"bats_toolchain\")\nload(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"core\",\n hardlink = \"on\",\n srcs = glob([\n \"lib/**\",\n \"libexec/**\"\n ]) + [\"bin/bats\"],\n out = \"bats-core\",\n)\n\nbats_toolchain(\n name = \"toolchain\",\n core = \":core\",\n libraries = [\"@bats_support//:support\", \"@bats_assert//:assert\", \"@bats_file//:file\"]\n)\n\ntoolchain(\n name = \"bats_toolchain\",\n exec_compatible_with = HOST_CONSTRAINTS,\n toolchain = \":toolchain\",\n toolchain_type = \"@aspect_bazel_lib//lib:bats_toolchain_type\",\n)\n" + } + }, + "yq_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.25.2" + } + }, + "jq_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.7" + } + }, + "expand_template_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "yq_linux_ppc64le": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.25.2" + } + }, + "copy_to_directory_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_to_directory" + } + }, + "jq_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "copy_directory_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_directory_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "yq_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.25.2" + } + }, + "coreutils_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "0.0.26" + } + }, + "yq_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.25.2" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "aspect_bazel_lib~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_bazel_lib~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { + "general": { + "bzlTransitiveDigest": "N13ZfZ6wLGo0wuRf5ovh3O/4c65sIBLrcjjrNbt5M9o=", + "usagesDigest": "fyGbV2htiehfmRllpv0Q+N1sRzciZ0JD+aX2jecfQ2A=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pnpm__links": { + "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl", + "ruleClassName": "npm_import_links", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "package_visibility": [ + "//visibility:public" + ], + "replace_package": "" + } + }, + "pnpm": { + "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl", + "ruleClassName": "npm_import_rule", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])", + "generate_bzl_library_targets": false, + "extract_full_archive": true, + "system_tar": "auto" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_bazel_lib~", + "bazel_tools", + "bazel_tools" + ], + [ + "aspect_rules_js~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "aspect_rules_js~", + "bazel_features", + "bazel_features~" + ], + [ + "aspect_rules_js~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_rules_js~", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features~", + "bazel_features_globals", + "bazel_features~~version_extension~bazel_features_globals" + ], + [ + "bazel_features~", + "bazel_features_version", + "bazel_features~~version_extension~bazel_features_version" + ] + ] + } + }, + "@@platforms//host:extension.bzl%host_platform": { + "general": { + "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=", + "usagesDigest": "meSzxn3DUCcYEhq4HQwExWkWtU4EjriRBQLsZN+Q0SU=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "host_platform": { + "bzlFile": "@@platforms//host:extension.bzl", + "ruleClassName": "host_platform_repo", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_bison~//bison/extensions:bison_repository_ext.bzl%bison_repository_ext": { + "general": { + "bzlTransitiveDigest": "A+3YMZenwhA/NwA7Bes9xuoVWQNCaBPxA05vtcFi8I4=", + "usagesDigest": "pg4ms5Q9MDybCOdUnh0ryjlnMfIBLNnZvGyBNb0Vhpk=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "bison_v3.3.2": { + "bzlFile": "@@rules_bison~//bison/rules:bison_toolchain_repository.bzl", + "ruleClassName": "bison_toolchain_repository", + "attributes": { + "bison_repository": "@bison_v3.3.2__cfg00000B62" + } + }, + "bison_v3.3.2__cfg00000B62": { + "bzlFile": "@@rules_bison~//bison/rules:bison_repository.bzl", + "ruleClassName": "bison_repository", + "attributes": { + "version": "3.3.2", + "extra_copts": [] + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "bison_v3.3.2" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_bison~//bison/internal:default_toolchain_ext.bzl%default_toolchain_ext": { + "general": { + "bzlTransitiveDigest": "JVWcUny48LFS9D+xz4b9u/94awfBOIGXV5iu8iY/nRc=", + "usagesDigest": "d7Z3y2AZdN7Sc4BdRU4h9HDd4nZUFM+Ls3iQYb3mCOA=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "bison_v3.3.2": { + "bzlFile": "@@rules_bison~//bison/rules:bison_repository.bzl", + "ruleClassName": "bison_repository", + "attributes": { + "version": "3.3.2" + } + }, + "bison": { + "bzlFile": "@@rules_bison~//bison/rules:bison_toolchain_repository.bzl", + "ruleClassName": "bison_toolchain_repository", + "attributes": { + "bison_repository": "@bison_v3.3.2" + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "bison" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_m4~//m4/internal:default_toolchain_ext.bzl%default_toolchain_ext": { + "general": { + "bzlTransitiveDigest": "rm6OAtIMR6n0t1X9wBVXucwCa6wqpIoqqh+kSzHNOg4=", + "usagesDigest": "UcxA/XigtmDpzRbmdFAY0WoatxHYiCgjCro6UZD+jvo=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "m4_v1.4.18": { + "bzlFile": "@@rules_m4~//m4/rules:m4_repository.bzl", + "ruleClassName": "m4_repository", + "attributes": { + "version": "1.4.18" + } + }, + "m4": { + "bzlFile": "@@rules_m4~//m4/rules:m4_toolchain_repository.bzl", + "ruleClassName": "m4_toolchain_repository", + "attributes": { + "m4_repository": "@m4_v1.4.18" + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "m4" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_nodejs~//nodejs:extensions.bzl%node": { + "general": { + "bzlTransitiveDigest": "0IJr1Jg3Dns9QKY65MtauFLtHjjP3n1DgN0+ZAjFYXo=", + "usagesDigest": "QaaCjO0WbxbalX+3ei3mvAH3DxI2biGkZ5h5rxhaOwk=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "nodejs_host": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_linux_s390x": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "18.20.3", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "nodejs_windows_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "18.20.3", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "nodejs_toolchains": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl", + "ruleClassName": "nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_linux_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "18.20.3", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "nodejs_linux_ppc64le": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "18.20.3", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "nodejs_darwin_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "18.20.3", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "nodejs_linux_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "18.20.3", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "nodejs": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_darwin_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": {}, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "18.20.3", + "include_headers": false, + "platform": "darwin_arm64" + } + } + }, + "recordedRepoMappingEntries": [] + } + } + } +} diff --git a/bzlmod/canonical-repo-name-injection/README.md b/bzlmod/canonical-repo-name-injection/README.md new file mode 100644 index 00000000..7969acb0 --- /dev/null +++ b/bzlmod/canonical-repo-name-injection/README.md @@ -0,0 +1,20 @@ +# Canonical Repo Name Injection Demo + +This is the example code for the EngFlow blog post "[Migrating to Bazel +Modules (a.k.a. Bzlmod) - Repo Names, Macros, and Variables][blog]." + +To try it out: + +```sh +bazel build //:repo-macros && cat bazel-bin/repo-macros.txt +bazel build //:repo-vars && cat bazel-bin/repo-vars.txt +bazel run //:repo-dir-check +cat bazel-bin/genrule-constants.js +vimdiff bazel-bin/{genrule,}-constants.js +bazel run --//:constants=custom-rule //:repo-dir-check +cat bazel-bin/custom-rule-constants.js +vimdiff bazel-bin/{genrule,custom-rule}-constants.js +node bazel-bin/repo-dir-check.mjs +``` + +[blog]: https://blog.engflow.com/2024/09/06/migrating-to-bazel-modules-aka-bzlmod---repo-names-macros-and-variables/ diff --git a/bzlmod/canonical-repo-name-injection/repo-dir-check.mjs b/bzlmod/canonical-repo-name-injection/repo-dir-check.mjs new file mode 100644 index 00000000..747e3b61 --- /dev/null +++ b/bzlmod/canonical-repo-name-injection/repo-dir-check.mjs @@ -0,0 +1,59 @@ +/* + * Copyright 2024 EngFlow Inc. + * + * 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. + */ + +import { + ruleName, target, location, macroName, macroDir, repoName, repoDir, binDir, +} from './constants.js'; + +import * as path from 'node:path'; +import * as fs from 'node:fs/promises'; +import * as process from 'node:process'; + +console.log(`rule name: ${ruleName}\n`); + +console.log(`target: ${target}`); +console.log(`location: ${location}\n`); + +console.log(`macroName: ${macroName}`); +console.log(`macroDir: ${macroDir}\n`); + +console.log(`repoName: ${repoName}`); +console.log(`repoDir: ${repoDir}\n`); + +console.log(`runfiles: ${process.env.JS_BINARY__RUNFILES}`) +console.log(`PWD: ${path.resolve()}`); +console.log(`binDir: ${binDir}\n`); + +async function checkDir() { + const dirname = path.resolve(...arguments); + await fs.access(dirname, fs.constants.R_OK | fs.constants.X_OK); + return dirname; +} + +try { + const result = await Promise.any([ + checkDir(macroDir), + checkDir(repoDir), + checkDir(binDir, macroDir), + checkDir(binDir, repoDir), + ]) + console.log(`result: ${result}`); + +} catch (err) { + console.error('repo directory not found:') + console.error(err.errors ? err.errors.join('\n'): err); + process.exit(1); +} diff --git a/bzlmod/canonical-repo-name-injection/repo-names.bzl b/bzlmod/canonical-repo-name-injection/repo-names.bzl new file mode 100644 index 00000000..d83a0fcf --- /dev/null +++ b/bzlmod/canonical-repo-name-injection/repo-names.bzl @@ -0,0 +1,138 @@ +# Copyright 2024 EngFlow Inc. +# +# 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. + +"""Macros and rules for accessing canonical repository names and paths""" + +load("@rules_js//js:providers.bzl", "JsInfo", _js_info_provider = "js_info") + +# These macros execute during the loading phase. For `alias` targets, they +# return the name of the repo containing the `alias`, not the repo of the +# target from its `actual` attribute. + +def canonical_repo(target_label): + """Return the canonical repository name corresponding to target_label.""" + return Label(target_label).repo_name + +def workspace_root(target_label): + """Return a target's repo workspace path relative to the execroot.""" + return Label(target_label).workspace_root + +# These rules will produce the repo name of the target of an `alias` rule, +# defined by its `actual` attribute. + +def _variable_info(ctx, value): + """Return a TemplateVariableInfo provider for Make variable rules.""" + return [platform_common.TemplateVariableInfo({ctx.attr.name: value})] + +repo_name_variable = rule( + implementation = lambda ctx: _variable_info( + ctx, + ctx.attr.dep.label.repo_name, + ), + doc = "Defines a custom variable for its dependency's repository name", + attrs = { + "dep": attr.label( + mandatory = True, + doc = "target for which to extract the repository name", + ), + }, +) + +repo_dir_variable = rule( + implementation = lambda ctx: _variable_info( + ctx, + ctx.attr.dep.label.workspace_root, + ), + doc = "Defines a custom variable for its dependency's repository dir", + attrs = { + "dep": attr.label( + mandatory = True, + doc = "target for which to extract the repository dir", + ), + }, +) + +# The following functions implement the `gen_js_constants` rule. + +def _js_info(label, sources, deps): + """Return a JsInfo provider for sources with transitive values from deps.""" + transitive_sources = [sources] + transitive_types = [] + npm_sources = [] + npm_package_store_infos = [] + + for i in [dep[JsInfo] for dep in deps if JsInfo in dep]: + transitive_sources.append(i.transitive_sources) + transitive_types.append(i.transitive_types) + npm_sources.append(i.npm_sources) + npm_package_store_infos.append(i.npm_package_store_infos) + + return _js_info_provider( + target = label, + sources = sources, + transitive_sources = depset(transitive = transitive_sources), + transitive_types = depset(transitive = transitive_types), + npm_sources = depset(transitive = npm_sources), + npm_package_store_infos = depset(transitive = npm_package_store_infos), + ) + +def _runfiles(ctx, sources, deps): + """Return a ctx.runfiles object with aggregate runfiles from deps.""" + deps_info = [dep[DefaultInfo] for dep in deps] + runfiles = ctx.runfiles( + files = sources.to_list(), + transitive_files = depset(transitive = [i.files for i in deps_info]), + ) + return runfiles.merge_all([i.default_runfiles for i in deps_info]) + +def _gen_js_constants_impl(ctx): + """Generate a JavaScript module exporting specified constants.""" + items = {"ruleName": ctx.attr.name, "binDir": ctx.bin_dir.path} + items |= {k: ctx.expand_location(v) for k, v in ctx.attr.vars.items()} + items |= {v: k.label.repo_name for k, v in ctx.attr.repo_names.items()} + items |= {v: k.label.workspace_root for k, v in ctx.attr.repo_dirs.items()} + declaration = "module.exports.{} = \"{}\";" + constants = [declaration.format(k, v) for k, v in items.items()] + + outfile = ctx.actions.declare_file(ctx.attr.name + ".js") + ctx.actions.write(outfile, "\n".join(constants) + "\n") + + sources = depset([outfile]) + deps = ctx.attr.deps + \ + ctx.attr.repo_names.keys() + \ + ctx.attr.repo_dirs.keys() + + return [ + _js_info(ctx.label, sources, deps), + DefaultInfo(files = sources, runfiles = _runfiles(ctx, sources, deps)), + ] + +gen_js_constants = rule( + implementation = _gen_js_constants_impl, + doc = "Generate a JavaScript module exporting specified constants.", + attrs = { + "deps": attr.label_list( + doc = "target labels for predefined source/output path variables", + ), + "vars": attr.string_dict( + doc = "mapping from constants to values or source/output vars", + ), + "repo_names": attr.label_keyed_string_dict( + doc = "mapping from target label to generated repo name constant", + ), + "repo_dirs": attr.label_keyed_string_dict( + doc = "mapping from target label to generated repo dir constant", + ), + }, +) diff --git a/cpp/BUILD b/cpp/BUILD index ce3c01ac..d392faa4 100644 --- a/cpp/BUILD +++ b/cpp/BUILD @@ -1,4 +1,32 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") + cc_binary( - name = "cpp", - srcs = ["main.cc"], + name = "cpp", + srcs = ["main.cc"], + deps = [":cpp_lib"], +) + +cc_library( + name = "cpp_lib", + srcs = [ + "hello.cc", + "hello.h", + ], +) + +build_test( + name = "cpp_build_test", + targets = [ + ":cpp", + ], +) + +cc_test( + name = "cpp_test", + size = "small", + srcs = ["hello_test.cc"], + deps = [":cpp_lib"], ) diff --git a/cpp/hello.cc b/cpp/hello.cc new file mode 100644 index 00000000..41d276c4 --- /dev/null +++ b/cpp/hello.cc @@ -0,0 +1,7 @@ +#include "cpp/hello.h" + +#include + +std::string hello() { + return "hello"; +} diff --git a/cpp/hello.h b/cpp/hello.h new file mode 100644 index 00000000..8df9418b --- /dev/null +++ b/cpp/hello.h @@ -0,0 +1,8 @@ +#ifndef cpp_hello_h +#define cpp_hello_h + +#include + +std::string hello(); + +#endif diff --git a/cpp/hello_test.cc b/cpp/hello_test.cc new file mode 100644 index 00000000..248939a4 --- /dev/null +++ b/cpp/hello_test.cc @@ -0,0 +1,11 @@ +#include +#include "cpp/hello.h" + +int main() { + auto got = hello(); + if (got != "hello") { + std::cerr << "got '" << got << "', want 'hello'" << std::endl; + return 1; + } + return 0; +} diff --git a/cpp/main.cc b/cpp/main.cc index cca70e32..cc2eaac2 100644 --- a/cpp/main.cc +++ b/cpp/main.cc @@ -1,5 +1,7 @@ -#include +#include +#include "cpp/hello.h" -int main(int argc, char** argv) { - printf("Hello World\n"); +int main() { + std::cout << hello() << std::endl; + return 0; } diff --git a/csharp/BUILD b/csharp/BUILD new file mode 100644 index 00000000..94036417 --- /dev/null +++ b/csharp/BUILD @@ -0,0 +1,19 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_dotnet//dotnet:defs.bzl", "csharp_binary") + +csharp_binary( + name = "csharp.exe", + srcs = [ + "Main.cs", + ], + target_frameworks = [ + "net8.0", + ], +) + +build_test( + name = "csharp_test", + targets = [ + ":csharp.exe", + ], +) diff --git a/csharp/Main.cs b/csharp/Main.cs new file mode 100644 index 00000000..e581983e --- /dev/null +++ b/csharp/Main.cs @@ -0,0 +1,11 @@ +using System; + +namespace HelloWorld +{ + class Hello { + static void Main(string[] args) + { + System.Console.WriteLine("Hello World!"); + } + } +} diff --git a/docker-sandbox/.bazelversion b/docker-sandbox/.bazelversion deleted file mode 100644 index 0b2eb36f..00000000 --- a/docker-sandbox/.bazelversion +++ /dev/null @@ -1 +0,0 @@ -3.7.2 diff --git a/docker/BUILD b/docker/BUILD new file mode 100644 index 00000000..e69de29b diff --git a/docker/network/BUILD b/docker/network/BUILD new file mode 100644 index 00000000..f9e67ff9 --- /dev/null +++ b/docker/network/BUILD @@ -0,0 +1,49 @@ +# Copyright 2021 EngFlow Inc. All rights reserved. +# +# 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. + +load("@rules_java//java:java_test.bzl", "java_test") +load("@rules_java//java/toolchains:java_runtime.bzl", "java_runtime") + +# Built from "Dockerfile" +# TODO: edit this value to match your Docker registry, image name, and digest +DOCKER_JDK_PSQL = "docker://gcr.io/YOUR-IMAGE-NAME@sha256:b6ed8f68abd6e23409ee7a500c2c50a8064cea11071ac447a59b88e6afa4c220" + +java_test( + name = "docker-network-test", + srcs = ["DockerNetworkTest.java"], + tags = [ + "manual", + "no-ci", # Consistent NPE + ], + test_class = "docker.network.DockerNetworkTest", +) + +platform( + name = "platform", + constraint_values = [ + "@platforms//cpu:x86_64", + "@platforms//os:linux", + ], + exec_properties = { + "container-image": DOCKER_JDK_PSQL, + "dockerNetwork": "standard", + "dockerSiblingContainers": "True", + }, +) + +java_runtime( + name = "jdk", + # JDK base path inside the DOCKER_JDK_PSQL container + java_home = "/usr/lib/jvm/java-11-openjdk-amd64", +) diff --git a/docker/network/DockerNetworkTest.java b/docker/network/DockerNetworkTest.java new file mode 100644 index 00000000..616e9348 --- /dev/null +++ b/docker/network/DockerNetworkTest.java @@ -0,0 +1,154 @@ +// Copyright 2021 EngFlow Inc. All rights reserved. +// +// 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 docker.network; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.UUID; +import org.junit.Assert; +import org.junit.Test; + +public final class DockerNetworkTest { + + private static final String POSTGRESQL_SERVER_IMAGE = "circleci/postgres:9.6-alpine-postgis"; + + @Test + public void dockerNetwork() throws Exception { + String networkName = System.getenv("HOST_NETWORK_NAME"); + System.out.println(" | DEBUG | Network name: " + networkName); + Assert.assertFalse(networkName.isEmpty()); + + String serverContainerName = "psql-server-" + UUID.randomUUID().toString().substring(0, 5); + + // Start the server. + new ProcessBuilder( + "docker", + "run", + "--rm", + "--name=" + serverContainerName, + "--network=" + networkName, + POSTGRESQL_SERVER_IMAGE) + .start(); + + // Wait some time for the container to start. 3 seconds is probably enough. + Thread.sleep(3000); + + // Get the server's address on the docker bridge network. + String ipAddr = getServerAddr(serverContainerName); + System.out.println(" | DEBUG | Server address: " + ipAddr); + + // Wait until the server is ready: when it stops replying "Connection refused". + waitForServer(ipAddr, "psql", "-h", ipAddr, "-U", "postgres", "-l"); + + // We expect success this time. + Result pingResult = runCommand("psql", "-h", ipAddr, "-U", "postgres", "-l"); + Assert.assertEquals(0, pingResult.exitCode); + System.out.println(" | DEBUG | Server replied:"); + System.out.println(pingResult.stdout); + System.out.println(pingResult.stderr); + + // Kill the server. + runCommand("docker", "kill", serverContainerName); + } + + /** Continuously copy ("pump") the |in| stream to the |out| stream. */ + private static Thread pumpStream(InputStream in, ByteArrayOutputStream out) { + Thread t = + new Thread( + () -> { + byte[] buf = new byte[10000]; + int len; + try { + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + } catch (IOException e) { + } + }); + t.setDaemon(true); + t.start(); + return t; + } + + /** Runs a command as a subprocess and waits until it terminates. */ + private static Result runCommand(String... args) throws Exception { + Process p = + new ProcessBuilder(args) + .redirectInput(ProcessBuilder.Redirect.PIPE) + .redirectError(ProcessBuilder.Redirect.PIPE) + .start(); + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); + ByteArrayOutputStream err = new ByteArrayOutputStream()) { + Thread t1 = pumpStream(p.getInputStream(), out); + Thread t2 = pumpStream(p.getErrorStream(), err); + int exit = p.waitFor(); + t1.join(); + t2.join(); + return new Result(exit, out.toByteArray(), err.toByteArray()); + } + } + + /** Extracts the IP address of |serverContainerName| on the Docker bridge network. */ + private static String getServerAddr(String serverContainerName) throws Exception { + Result result = runCommand("docker", "exec", serverContainerName, "ip", "a"); + for (String line : result.stdout.split("\n")) { + if (line.contains("inet 172.") && line.contains("brd")) { + for (String part : line.split(" ")) { + if (part.startsWith("172.")) { + int slash = part.indexOf('/'); + return part.substring(0, slash); + } + } + break; + } + } + throw new Exception("Could not get ip address:\n" + result.stderr); + } + + /** Runs |args| against |ipAddr| as long as it keeps replying with "Connection refused". */ + private static void waitForServer(String ipAddr, String... args) throws Exception { + while (true) { + System.out.println(" | DEBUG | Waiting for server..."); + Result result = runCommand(args); + boolean running = true; + for (String line : (result.stdout + result.stderr).split("\n")) { + if (line.contains("Connection refused")) { + System.out.println(result.stderr); + running = false; + break; + } + } + if (running) { + System.out.println(" | DEBUG | Server running"); + return; + } else { + Thread.sleep(1000); + } + } + } + + private static final class Result { + final int exitCode; + final String stdout; + final String stderr; + + Result(int exitCode, byte[] stdoutBytes, byte[] stderrBytes) { + this.exitCode = exitCode; + this.stdout = new String(stdoutBytes, StandardCharsets.UTF_8); + this.stderr = new String(stderrBytes, StandardCharsets.UTF_8); + } + } +} diff --git a/docker/network/Dockerfile b/docker/network/Dockerfile new file mode 100644 index 00000000..81e60faf --- /dev/null +++ b/docker/network/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2021 EngFlow Inc. All rights reserved. +# +# 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. + +FROM debian:buster + +RUN apt update -y && apt install -y docker.io openjdk-11-jdk-headless postgresql-client diff --git a/docker/network/README.md b/docker/network/README.md new file mode 100644 index 00000000..f444cea3 --- /dev/null +++ b/docker/network/README.md @@ -0,0 +1,104 @@ +# Example: Docker networking with sibling containers + +## Contents + +This example shows how can a Java test, which runs in a Docker container, start further containers +and have them communicate over a local (bridge) network. + +This Java test: + +- runs in a Docker container +- starts another container (a "sibling container") that is a PostgreSQL server +- starts another container which talks to the first (PostgreSQL client) + +## Build the action execution image + +```sh +docker build -t docker_jdk_psql . +``` + +Then push this to a Docker registry where the EngFlow worker can pull it from. + +## Configure the server + +Run your EngFlow service with: + +- [`--allow_docker=true`](https://docs.engflow.com/docs/re/config/options.html#allow_docker) +- [`--docker_allow_network_access=true`](https://docs.engflow.com/docs/re/config/options.html#docker_allow_network_access) +- [`--docker_allow_sibling_containers=true`](https://docs.engflow.com/docs/re/config/options.html#docker_allow_sibling_containers) + +## Build and test + +Update the `DOCKER_JDK_PSQL` reference in the `BUILD` file. + +Then: + +```sh +bazel --ignore_all_rc_files test \ + --remote_executor= \ + --spawn_strategy=remote \ + --host_platform=//:platform \ + --platforms=//:platform \ + --host_javabase=//:jdk \ + --javabase=//:jdk \ + --test_output=errors \ + (... extra flags for auth, etc. ...) \ + -- \ + //:docker-network-test +``` + +The test should pass. The logs will show: + +``` +exec ${PAGER:-/usr/bin/less} "$0" || exit 1 +Executing tests from //:docker-network-test +whoami: cannot find name for user ID 1000 +----------------------------------------------------------------------------- +JUnit4 Test Runner +. | DEBUG | Network name: bridge-8743470f-a035-49b8-8cd1-95eb0f7ff19d + | DEBUG | Server address: 172.27.0.3 + | DEBUG | Waiting for server... +psql: could not connect to server: Connection refused + Is the server running on host "172.27.0.3" and accepting + TCP/IP connections on port 5432? + + | DEBUG | Waiting for server... +psql: could not connect to server: Connection refused + Is the server running on host "172.27.0.3" and accepting + TCP/IP connections on port 5432? + + | DEBUG | Waiting for server... +psql: could not connect to server: Connection refused + Is the server running on host "172.27.0.3" and accepting + TCP/IP connections on port 5432? + + | DEBUG | Waiting for server... + | DEBUG | Server running + | DEBUG | Server replied: + List of databases + Name | Owner | Encoding | Collate | Ctype | Access privileges +------------------+----------+----------+------------+------------+----------------------- + circle_test | postgres | UTF8 | en_US.utf8 | en_US.utf8 | + postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 | + template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres + + | | | | | postgres=CTc/postgres + template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres + + | | | | | postgres=CTc/postgres + template_postgis | postgres | UTF8 | en_US.utf8 | en_US.utf8 | +(5 rows) + + + + +Time: 6.957 + +OK (1 test) + + +BazelTestRunner exiting with a return value of 0 +JVM shutdown hooks (if any) will run now. +The JVM will exit once they complete. + +-- JVM shutdown starting at 2021-07-26 08:10:44 -- +``` + diff --git a/docker/network/WORKSPACE b/docker/network/WORKSPACE new file mode 100644 index 00000000..93c52939 --- /dev/null +++ b/docker/network/WORKSPACE @@ -0,0 +1 @@ +workspace(name = "docker_network_demo") diff --git a/docker-sandbox/.bazelrc b/docker/sandbox/.bazelrc similarity index 100% rename from docker-sandbox/.bazelrc rename to docker/sandbox/.bazelrc diff --git a/docker/sandbox/.bazelversion b/docker/sandbox/.bazelversion new file mode 100644 index 00000000..af8c8ec7 --- /dev/null +++ b/docker/sandbox/.bazelversion @@ -0,0 +1 @@ +4.2.2 diff --git a/docker-sandbox/BUILD b/docker/sandbox/BUILD similarity index 56% rename from docker-sandbox/BUILD rename to docker/sandbox/BUILD index 72ac7bec..fc3f7afe 100644 --- a/docker-sandbox/BUILD +++ b/docker/sandbox/BUILD @@ -1,3 +1,7 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_java//java:java_binary.bzl", "java_binary") + genrule( name = "hello", srcs = ["dep%d" % i for i in range(3)], @@ -8,7 +12,8 @@ genrule( [genrule( name = "dep%d" % i, outs = ["dep%d.txt" % i], - cmd = "(echo hello %d ; echo \"inside docker: $$(cat /proc/1/cgroup | grep -q 'docker\|lxc' && echo yes || echo no)\" ; echo \"host: $$(hostname)\" ; echo \"date: $$(date)\" ; echo) > $@" % i, + cmd = "(echo hello %d ; echo \"inside docker: $$(cat /proc/1/cgroup | grep -Eq 'docker|lxc' && echo yes || echo no)\" ; echo \"host: $$(hostname)\" ; echo \"date: $$(date)\" ; echo) > $@" % i, + target_compatible_with = ["@platforms//os:linux"], ) for i in range(3)] java_binary( @@ -21,3 +26,11 @@ cc_binary( name = "hello-cc", srcs = ["hello.cc"], ) + +build_test( + name = "hello_test", + tags = ["no-macos-ci"], + targets = [ + ":hello", + ], +) diff --git a/docker-sandbox/Hello.java b/docker/sandbox/Hello.java similarity index 81% rename from docker-sandbox/Hello.java rename to docker/sandbox/Hello.java index f0ba0c91..e713d721 100644 --- a/docker-sandbox/Hello.java +++ b/docker/sandbox/Hello.java @@ -1,3 +1,5 @@ +package docker.sandbox; + public class Hello { public static void main(String[] args) { System.out.println("Hello Java!"); diff --git a/docker-sandbox/README.md b/docker/sandbox/README.md similarity index 100% rename from docker-sandbox/README.md rename to docker/sandbox/README.md diff --git a/docker-sandbox/WORKSPACE b/docker/sandbox/WORKSPACE similarity index 100% rename from docker-sandbox/WORKSPACE rename to docker/sandbox/WORKSPACE diff --git a/docker-sandbox/hello.cc b/docker/sandbox/hello.cc similarity index 100% rename from docker-sandbox/hello.cc rename to docker/sandbox/hello.cc diff --git a/docker/sysbox/README.md b/docker/sysbox/README.md new file mode 100644 index 00000000..2b9fc4bb --- /dev/null +++ b/docker/sysbox/README.md @@ -0,0 +1,35 @@ +# Preparing your code base for Remote Execution + +This is an example project that validates Sysbox setup for your EngFlow cluster +works correctly. + +Use as companion to https://docs.engflow.com/re/client/sysbox.html + +Usage: + +- Follow instructions in https://docs.engflow.com/re/client/sysbox.html to generate + a container tha uses `sysbox` to run nested docker containers. + +- Modify the `dind_test/BUILD`. Change the `container-image` attribute of the `sh_test` +rule to point the container you produced in the previous step. + +- Modify the `.bazelrc` file at the top level of the repo to use your own endpoint. + +- Run the following command: + +```sh +bazel test --config= --test_output=all //docker/sysbox/dind_test:check_docker +``` + +# How does it work? + +The simple `sh_test` will run remotely using the container you produced following +the instructions in the docs pointed above. The remote worker will attempt to pull and +run your container and run the `sh_test` inside of the container. The `sh_test` rule +starts an container using an alpine image and runs a date command in the container. +Note if your cluster does not have access to this image you can replace it in the +`dind_test/check_docker.sh` to use any image that is accessible from your cluster. + +If your container can be initiated without issues using the `sysbox-runc` example +the it is properly configured and ready to use for your DinD needs. + diff --git a/docker/sysbox/dind_test/BUILD b/docker/sysbox/dind_test/BUILD new file mode 100644 index 00000000..c05874c9 --- /dev/null +++ b/docker/sysbox/dind_test/BUILD @@ -0,0 +1,38 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. + +load("@rules_shell//shell:sh_test.bzl", "sh_test") + +sh_test( + name = "check_docker", + srcs = ["check_docker.sh"], + exec_properties = { + # Replace the container-image below to use the one you created. + "container-image": "docker://645088952840.dkr.ecr.eu-west-1.amazonaws.com/engflow-ci/debian12-dind-x64@sha256:1389536c34990e6f49cb38575c2b4f9d08cd3a27e7c3e93c77b7af6260fc5f83", + "dockerRuntime": "sysbox-runc", + "Pool": "ci_sysbox_x64", # this can change depending on what pool has sysbox enabled + "dockerNetwork": "standard", + # DO NOT ENABLE!!! "dockerSiblingContainers": "True", + # it will cause the worker to mount /var/run/docker.sock + # but the goal is to have the container itself run dockerd + # and this will break it + # DO NOT ENABLE!!! "dockerPrivileged": "True", + # sysbox containers will refuse to start + }, + tags = [ + "manual", + "no-local-ci", + "no-macos-ci", + ], +) diff --git a/docker/sysbox/dind_test/check_docker.sh b/docker/sysbox/dind_test/check_docker.sh new file mode 100755 index 00000000..64893692 --- /dev/null +++ b/docker/sysbox/dind_test/check_docker.sh @@ -0,0 +1,11 @@ +#!/bin/bash +echo "Starting docker container test" +DATE=$(sudo docker run alpine date) + +if [[ ! -z "$DATE" ]] && date -d "$DATE" "+%Y-%m-%d" >/dev/null 2>&1; then + echo "The \"$DATE\" from container is a valid date string in the yyyy-mm-dd format." + exit 0 +else + echo "The \"$DATE\" from container is NOT a valid date string in the yyyy-mm-dd format." + exit 1 # terminate and indicate error +fi diff --git a/genrules/BUILD b/genrules/BUILD new file mode 100644 index 00000000..c5ca8dd3 --- /dev/null +++ b/genrules/BUILD @@ -0,0 +1,67 @@ +# Copyright 2022 EngFlow Inc. All rights reserved. +# +# 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. +# +# The following genrules are able to produce thousands of targets based +# on the user's input. +# This can be used for stress testing your build infrastructure. +# Change the upper bound of the range and enjoy! +load("@bazel_skylib//rules:build_test.bzl", "build_test") + +UPPER_BOUND = 10 + +[genrule( + name = "foo_TXT_4KB_" + str(x), + outs = ["foo_text" + str(x) + ".txt"], + cmd_bash = "echo 'Hello engflow world from bash' > $@", + cmd_ps = "Set-Content -Path $@ -Value 'Hello engflow world from powershell'", +) for x in range(1, UPPER_BOUND)] + +# Explicitlt specify the following target if +# you want to add more load to the build. +[genrule( + name = "gnu-manifesto_PDF_76KB" + str(x), + outs = ["gnu-manifesto" + str(x) + ".pdf"], + cmd = "cp $(location gnu-manifesto.pdf) $@", + tags = ["manual"], + tools = ["gnu-manifesto.pdf"], +) for x in range(1, UPPER_BOUND)] + +# Explicitlt specify the following target if +# you want to add more load to the build. +[genrule( + name = "emacs_TARGZ_68MB" + str(x), + outs = ["emacs" + str(x) + ".tar.gz"], + cmd = "cp $(location @emacs//file) $@", + tags = ["manual"], + tools = ["@emacs//file"], +) for x in range(1, UPPER_BOUND)] + +# Explicitlt specify the following target if +# you want to add more load to the build. +# Be aware that it downloads around 1.3GB. +[genrule( + name = "ubuntu_20.04_1.3GB" + str(x), + outs = ["ubuntu_20.04_1.3GB" + str(x) + ".iso"], + cmd = "cp $(location @ubuntu_20.04_1.3GB//file) $@", + tags = ["manual"], + tools = ["@ubuntu_20.04_1.3GB//file"], +) for x in range(1, 2)] + +# Only test a few to ensure they build, without creating undue load. +build_test( + name = "foo_TXT_test", + targets = [ + ":foo_TXT_4KB_1", + ], +) diff --git a/genrules/gnu-manifesto.pdf b/genrules/gnu-manifesto.pdf new file mode 100644 index 00000000..53a3a0f1 Binary files /dev/null and b/genrules/gnu-manifesto.pdf differ diff --git a/go.mod b/go.mod new file mode 100644 index 00000000..49d14c04 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/EngFlow/example + +go 1.21.2 + +require github.com/google/go-cmp v0.6.0 diff --git a/go.sum b/go.sum new file mode 100644 index 00000000..5a8d551d --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= diff --git a/go/BUILD b/go/BUILD new file mode 100644 index 00000000..19bbd0f9 --- /dev/null +++ b/go/BUILD @@ -0,0 +1,22 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_go//go:def.bzl", "go_binary", "go_library") + +go_binary( + name = "go", + embed = [":go_lib"], + visibility = ["//visibility:public"], +) + +go_library( + name = "go_lib", + srcs = ["main.go"], + importpath = "github.com/EngFlow/example/go", + visibility = ["//visibility:private"], +) + +build_test( + name = "go_build_test", + targets = [ + ":go", + ], +) diff --git a/go/main.go b/go/main.go new file mode 100644 index 00000000..c0481191 --- /dev/null +++ b/go/main.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("hello world") +} diff --git a/googleapis-loads.patch b/googleapis-loads.patch new file mode 100644 index 00000000..60aa1c5e --- /dev/null +++ b/googleapis-loads.patch @@ -0,0 +1,246 @@ +commit c2dc8c77803e41ac29096b99ab126b9bdf609c2d +Author: Ivo List +Date: Mon Sep 8 20:39:53 2025 +0200 + + add loads + +diff --git a/google/cloud/asset/v1p7beta1/BUILD.bazel b/google/cloud/asset/v1p7beta1/BUILD.bazel +index 6897862..bc6174d 100755 +--- a/google/cloud/asset/v1p7beta1/BUILD.bazel ++++ b/google/cloud/asset/v1p7beta1/BUILD.bazel +@@ -13,6 +13,7 @@ + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_grpc_library", +diff --git a/google/cloud/bigquery/connection/v1beta1/BUILD.bazel b/google/cloud/bigquery/connection/v1beta1/BUILD.bazel +index 445482e..318c6d1 100755 +--- a/google/cloud/bigquery/connection/v1beta1/BUILD.bazel ++++ b/google/cloud/bigquery/connection/v1beta1/BUILD.bazel +@@ -7,6 +7,7 @@ package(default_visibility = ["//visibility:public"]) + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + + proto_library( +diff --git a/google/cloud/bigquery/storage/v1/BUILD.bazel b/google/cloud/bigquery/storage/v1/BUILD.bazel +index d0988c9..da28081 100755 +--- a/google/cloud/bigquery/storage/v1/BUILD.bazel ++++ b/google/cloud/bigquery/storage/v1/BUILD.bazel +@@ -2,6 +2,7 @@ + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", +diff --git a/google/cloud/bigquery/storage/v1beta2/BUILD.bazel b/google/cloud/bigquery/storage/v1beta2/BUILD.bazel +index c7ad0cf..8d87df6 100755 +--- a/google/cloud/bigquery/storage/v1beta2/BUILD.bazel ++++ b/google/cloud/bigquery/storage/v1beta2/BUILD.bazel +@@ -5,6 +5,7 @@ package(default_visibility = ["//visibility:public"]) + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + + proto_library( +diff --git a/google/cloud/oslogin/common/BUILD.bazel b/google/cloud/oslogin/common/BUILD.bazel +index 0711bd1..b99b643 100755 +--- a/google/cloud/oslogin/common/BUILD.bazel ++++ b/google/cloud/oslogin/common/BUILD.bazel +@@ -7,6 +7,7 @@ package(default_visibility = ["//visibility:public"]) + # Common + ############################################################################## + load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") ++load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") + + proto_library( + name = "common_proto", +diff --git a/google/cloud/recommendationengine/v1beta1/BUILD.bazel b/google/cloud/recommendationengine/v1beta1/BUILD.bazel +index 39427fd..8c5a72a 100755 +--- a/google/cloud/recommendationengine/v1beta1/BUILD.bazel ++++ b/google/cloud/recommendationengine/v1beta1/BUILD.bazel +@@ -4,6 +4,7 @@ + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", +diff --git a/google/devtools/build/v1/BUILD.bazel b/google/devtools/build/v1/BUILD.bazel +index 9ac62c0..97a3a72 100755 +--- a/google/devtools/build/v1/BUILD.bazel ++++ b/google/devtools/build/v1/BUILD.bazel +@@ -13,6 +13,7 @@ + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@com_google_googleapis_imports//:imports.bzl", py_test = "go_test") + load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", +diff --git a/google/devtools/containeranalysis/v1beta1/build/BUILD.bazel b/google/devtools/containeranalysis/v1beta1/build/BUILD.bazel +index 7d478fa..284187c 100755 +--- a/google/devtools/containeranalysis/v1beta1/build/BUILD.bazel ++++ b/google/devtools/containeranalysis/v1beta1/build/BUILD.bazel +@@ -30,6 +30,7 @@ load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + ) ++load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") + + java_proto_library( + name = "build_java_proto", +diff --git a/google/devtools/containeranalysis/v1beta1/deployment/BUILD.bazel b/google/devtools/containeranalysis/v1beta1/deployment/BUILD.bazel +index 921d489..15a97aa 100755 +--- a/google/devtools/containeranalysis/v1beta1/deployment/BUILD.bazel ++++ b/google/devtools/containeranalysis/v1beta1/deployment/BUILD.bazel +@@ -30,6 +30,7 @@ load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + ) ++load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") + + java_proto_library( + name = "deployment_java_proto", +diff --git a/google/devtools/containeranalysis/v1beta1/discovery/BUILD.bazel b/google/devtools/containeranalysis/v1beta1/discovery/BUILD.bazel +index 58a4b6c..87525e0 100755 +--- a/google/devtools/containeranalysis/v1beta1/discovery/BUILD.bazel ++++ b/google/devtools/containeranalysis/v1beta1/discovery/BUILD.bazel +@@ -32,6 +32,7 @@ load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + ) ++load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") + + java_proto_library( + name = "discovery_java_proto", +diff --git a/google/devtools/containeranalysis/v1beta1/image/BUILD.bazel b/google/devtools/containeranalysis/v1beta1/image/BUILD.bazel +index 7fbc648..9ff3b2f 100755 +--- a/google/devtools/containeranalysis/v1beta1/image/BUILD.bazel ++++ b/google/devtools/containeranalysis/v1beta1/image/BUILD.bazel +@@ -28,6 +28,7 @@ load( + "@com_google_googleapis_imports//:imports.bzl", + "java_grpc_library", + ) ++load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") + + java_proto_library( + name = "image_java_proto", +diff --git a/google/devtools/remoteworkers/v1test2/BUILD.bazel b/google/devtools/remoteworkers/v1test2/BUILD.bazel +index f2a1f41..3dc7dbb 100755 +--- a/google/devtools/remoteworkers/v1test2/BUILD.bazel ++++ b/google/devtools/remoteworkers/v1test2/BUILD.bazel +@@ -41,6 +41,7 @@ load( + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + + # This is an API workspace, having public visibility by default makes perfect sense. + package(default_visibility = ["//visibility:public"]) +diff --git a/google/devtools/source/v1/BUILD.bazel b/google/devtools/source/v1/BUILD.bazel +index 31da1d1..41b36fd 100755 +--- a/google/devtools/source/v1/BUILD.bazel ++++ b/google/devtools/source/v1/BUILD.bazel +@@ -21,6 +21,7 @@ load( + "ruby_grpc_library", + "ruby_proto_library", + ) ++load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") + + # This is an API workspace, having public visibility by default makes perfect sense. + package(default_visibility = ["//visibility:public"]) +diff --git a/google/home/graph/v1/BUILD.bazel b/google/home/graph/v1/BUILD.bazel +index 5520e5a..cb40749 100755 +--- a/google/home/graph/v1/BUILD.bazel ++++ b/google/home/graph/v1/BUILD.bazel +@@ -4,6 +4,7 @@ + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", +diff --git a/google/maps/BUILD.bazel b/google/maps/BUILD.bazel +index d796eca..c4a3ed8 100755 +--- a/google/maps/BUILD.bazel ++++ b/google/maps/BUILD.bazel +@@ -1,3 +1,5 @@ ++load("@rules_shell//shell:sh_binary.bzl", "sh_binary") ++ + package(default_visibility = ["//google/maps:__subpackages__"]) + + sh_binary( +diff --git a/google/maps/fleetengine/delivery/v1/BUILD.bazel b/google/maps/fleetengine/delivery/v1/BUILD.bazel +index cf715b2..2ba9cb5 100755 +--- a/google/maps/fleetengine/delivery/v1/BUILD.bazel ++++ b/google/maps/fleetengine/delivery/v1/BUILD.bazel +@@ -31,6 +31,7 @@ load( + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + + # This is an API workspace, having public visibility by default makes perfect sense. + package(default_visibility = ["//visibility:public"]) +diff --git a/google/maps/fleetengine/v1/BUILD.bazel b/google/maps/fleetengine/v1/BUILD.bazel +index 7c84856..f9b66d0 100755 +--- a/google/maps/fleetengine/v1/BUILD.bazel ++++ b/google/maps/fleetengine/v1/BUILD.bazel +@@ -31,6 +31,7 @@ load( + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + + # This is an API workspace, having public visibility by default makes perfect sense. + package(default_visibility = ["//visibility:public"]) +diff --git a/google/shopping/merchant/notifications/v1beta/BUILD.bazel b/google/shopping/merchant/notifications/v1beta/BUILD.bazel +index 1a11ae8..db83456 100755 +--- a/google/shopping/merchant/notifications/v1beta/BUILD.bazel ++++ b/google/shopping/merchant/notifications/v1beta/BUILD.bazel +@@ -11,6 +11,8 @@ + + # buildifier: disable=load-on-top + ++load("@rules_python//python:defs.bzl", "py_test") ++ + # This is an API workspace, having public visibility by default makes perfect sense. + package(default_visibility = ["//visibility:public"]) + +diff --git a/google/shopping/merchant/reports/v1beta/BUILD.bazel b/google/shopping/merchant/reports/v1beta/BUILD.bazel +index 8415965..34868ff 100755 +--- a/google/shopping/merchant/reports/v1beta/BUILD.bazel ++++ b/google/shopping/merchant/reports/v1beta/BUILD.bazel +@@ -11,6 +11,8 @@ + + # buildifier: disable=load-on-top + ++load("@rules_python//python:defs.bzl", "py_test") ++ + # This is an API workspace, having public visibility by default makes perfect sense. + package(default_visibility = ["//visibility:public"]) + +diff --git a/google/storage/v2/BUILD.bazel b/google/storage/v2/BUILD.bazel +index 24c641a39..7bf613cfd 100644 +--- a/google/storage/v2/BUILD.bazel ++++ b/google/storage/v2/BUILD.bazel +@@ -43,6 +43,7 @@ load( + # Common + ############################################################################## + load("@rules_proto//proto:defs.bzl", "proto_library") ++load("@rules_python//python:defs.bzl", "py_test") + + # This is an API workspace, having public visibility by default makes perfect sense. + package(default_visibility = ["//visibility:public"]) diff --git a/infra/auth-buck2.sh b/infra/auth-buck2.sh new file mode 100755 index 00000000..6cfbf1a6 --- /dev/null +++ b/infra/auth-buck2.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -xe + +# Modify the buck2/**/.buckconfig files to set the test cluster to opal. +find ./ -type f -name '.buckconfig' -exec sed -i 's//opal/g' {} \; + +# Modify the buck2/**/.buckconfig files to set the "Authorization=Bearer $GITHUB_TOKEN" in the http_headers. +find ./ -type f -name '.buckconfig' -exec sed -i 's//Authorization:Bearer $GITHUB_TOKEN/g' {} \; + diff --git a/infra/bazel_credential_helper.sh b/infra/bazel_credential_helper.sh new file mode 100755 index 00000000..9b2d0977 --- /dev/null +++ b/infra/bazel_credential_helper.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# Bazel expects the helper to read stdin. +cat /dev/stdin > /dev/null + +# `OPAL_RPC_CREDENTIALS` is provided as a secret. +echo "${OPAL_RPC_CREDENTIALS}" diff --git a/infra/bazelrc b/infra/bazelrc new file mode 100644 index 00000000..db87f1bd --- /dev/null +++ b/infra/bazelrc @@ -0,0 +1 @@ +build:opal_auth --credential_helper=opal.cluster.engflow.com=%workspace%/infra/bazel_credential_helper.sh diff --git a/infra/gopackagesdriver.sh b/infra/gopackagesdriver.sh new file mode 100755 index 00000000..ba7d79cf --- /dev/null +++ b/infra/gopackagesdriver.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +exec bazel run -- @io_bazel_rules_go//go/tools/gopackagesdriver "${@}" diff --git a/infra/msvc_filter_showincludes/BUILD b/infra/msvc_filter_showincludes/BUILD new file mode 100644 index 00000000..20847520 --- /dev/null +++ b/infra/msvc_filter_showincludes/BUILD @@ -0,0 +1,27 @@ +load("@rules_go//go:def.bzl", "go_binary", "go_library", "go_test") + +MSVC_PATH = "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/cl.exe" + +go_library( + name = "msvc_filter_showincludes_lib", + srcs = ["msvc_filter_showincludes.go"], + importpath = "github.com/EngFlow/example/infra/msvc_filter_showincludes", + visibility = ["//visibility:private"], + x_defs = { + "github.com/EngFlow/example/infra/msvc_filter_showincludes.MSVCPath": MSVC_PATH, + }, +) + +go_binary( + name = "msvc_filter_showincludes", + embed = [":msvc_filter_showincludes_lib"], + visibility = ["//visibility:public"], +) + +go_test( + name = "msvc_filter_showincludes_test", + size = "small", + srcs = ["msvc_filter_showincludes_test.go"], + embed = [":msvc_filter_showincludes_lib"], + deps = ["@com_github_google_go_cmp//cmp"], +) diff --git a/infra/msvc_filter_showincludes/msvc_filter_showincludes.go b/infra/msvc_filter_showincludes/msvc_filter_showincludes.go new file mode 100644 index 00000000..7c6f38c9 --- /dev/null +++ b/infra/msvc_filter_showincludes/msvc_filter_showincludes.go @@ -0,0 +1,236 @@ +// Copyright 2023 EngFlow, Inc. All rights reserved. +// +// 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. + +// Command msvc_filter_showincludes relativizes output of cl.exe /showincludes. +// +// Work around for https://github.com/bazelbuild/bazel/issues/19733. +// +// Bazel's CppCompile action performs header validation as part of each compile. +// Bazel causes the compiler to dump a complete list of headers included in each +// compilation. Bazel post-processes this output to verify that the action +// did not include files that weren't part of the provided inputs and +// aren't listed in the toolchain's system include directories. +// +// When building with MSVC, Bazel enables the /showincludes flag, which prints +// the list of includes on stdout or stderr (not sure which; Bazel reads both). +// The output contains absolute paths, which is non-hermetic for remote +// execution. +// +// Before performing header validation, Bazel pre-processes the output to +// remove anything that looks like an execroot prefix. Unfortunately, +// Bazel's idea of an execroot prefix doesn't match EngFlow's. Bazel's +// prefix also includes a workspace name, which is not transmitted as part of +// the remote execution protocol, so we can't work around this problem +// on the server side. +// +// Instead, we can configure the C++ toolchain to invoke +// msvc_filter_showincludes instead of cl.exe. This program wraps MSVC, +// invoking it with a hard-coded absolute path. This program filters +// /showincludes output, removing parts of directory paths that look like +// EngFlow Windows execroot directories. +// +// For example, this line: +// +// Note: including file: C:\worker\work\2\exec\cpp/hello.h +// +// is replaced with: +// +// Note: including file: cpp/hello.h +// +// Bazel's validation code (HeaderDiscover.java) can still use this output. +// This wrapper makes the action somewhat more hermetic. +package main + +import ( + "bytes" + "context" + "fmt" + "os" + "os/exec" + "regexp" + "strings" +) + +// MSVCPath is the absolute path to MSVC's cl.exe. It should be set with a -X +// linker flag. With rules_go, that can be done with an x_defs attribute. +var MSVCPath string + +func main() { + if err := run(context.Background(), os.Args[1:]); err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n", err) + os.Exit(1) + } +} + +func run(ctx context.Context, args []string) error { + cmd := exec.CommandContext(ctx, MSVCPath, args...) + stdoutBuf := &bytes.Buffer{} + stderrBuf := &bytes.Buffer{} + cmd.Stdout = stdoutBuf + cmd.Stderr = stderrBuf + + if err := cmd.Run(); err != nil { + return err + } + + stdoutFiltered := showIncludesRe.ReplaceAll(stdoutBuf.Bytes(), []byte(showIncludesReplacement)) + stderrFiltered := showIncludesRe.ReplaceAll(stderrBuf.Bytes(), []byte(showIncludesReplacement)) + if _, err := os.Stdout.Write(stdoutFiltered); err != nil { + return err + } + if _, err := os.Stderr.Write(stderrFiltered); err != nil { + return err + } + + return nil +} + +// showIncludesReplacement is the string to pass to regexp.Regexp.ReplaceAll +// when filtering output. Substrings like $1 expand to numbered match groups. +// This basically drops $2, the EngFlow execroot directory. +var showIncludesReplacement = `$1$3` + +// showIncludesRe is the regular expression to match in the output. +// It consists of three match groups with no text in between. +// +// Group 1 matches a prefix like "Note: including file:" followed by +// whitespace. The prefix is translated into 14 languages. The bytes are +// copied from Bazel's ShowIncludesFilter.java. +// +// Group 2 matches the EngFlow execroot directory prefix, ending with \. +// It should be removed. +// +// Group 3 matches the include path within the execroot. +// +// For example, the line: +// +// Note: including file: C:\worker\work\2\exec\cpp/hello.h +// +// is split into groups: +// +// 1. "Note: including file: " +// 2. "C:\worker\work\2\exec\" +// 3. "cpp/hello.h\n" +var showIncludesRe = (func() *regexp.Regexp { + if MSVCPath == "" { + panic("MSVCPath was not set; expected it to be set with -X linker flag (x_defs in Bazel)") + } + + // Flags: + // i: case sensitive + // m: ^ and $ match begin/end of line in addition to begin/end of text. + buf := &strings.Builder{} + buf.WriteString("(?im)") + + // Group 1: "Note: including file:" + buf.WriteString("^((?:") + sep := "" + for _, prefixInt8 := range showIncludesPrefixes { + buf.WriteString(sep) + sep = "|" + prefixBytes := make([]byte, len(prefixInt8)) + for i, b := range prefixInt8 { + prefixBytes[i] = byte(b) + } + prefixStr := regexp.QuoteMeta(string(prefixBytes)) + buf.WriteString(prefixStr) + } + buf.WriteString(`)[ \t]*)`) + + // Group 2: EngFlow execroot directory. + buf.WriteString(`([A-Z]:\\.*?\\exec\\)`) + + // Group 3: Path within execroot. + buf.WriteString(`(.*\n?)`) + return regexp.MustCompile(buf.String()) +})() + +// showIncludesPrefixes is "Note: including file:" translated into 14 languages +// and encoded in signed UTF-8. The bytes are copied from Bazel's +// ShowIncludesFilter.java. +var showIncludesPrefixes = [][]int8{ + // English + { + 78, 111, 116, 101, 58, 32, 105, 110, 99, 108, 117, 100, 105, 110, 103, 32, 102, + 105, 108, 101, 58, + }, + // Traditional Chinese + { + -26, -77, -88, -26, -124, -113, 58, 32, -27, -116, -123, -27, -112, -85, -26, -86, + -108, -26, -95, -120, 58, + }, + // Czech + { + 80, 111, 122, 110, -61, -95, 109, 107, 97, 58, 32, 86, -60, -115, 101, 116, 110, + -60, -101, 32, 115, 111, 117, 98, 111, 114, 117, 58, + }, + // German + { + 72, 105, 110, 119, 101, 105, 115, 58, 32, 69, 105, 110, 108, 101, 115, 101, 110, + 32, 100, 101, 114, 32, 68, 97, 116, 101, 105, 58, + }, + // French + { + 82, 101, 109, 97, 114, 113, 117, 101, -62, -96, 58, 32, 105, 110, 99, 108, 117, + 115, 105, 111, 110, 32, 100, 117, 32, 102, 105, 99, 104, 105, 101, 114, -62, -96, + 58, + }, + // Italian + { + 78, 111, 116, 97, 58, 32, 102, 105, 108, 101, 32, 105, 110, 99, 108, 117, 115, 111, + }, + // Japanese + { + -29, -125, -95, -29, -125, -94, 58, 32, -29, -126, -92, -29, -125, -77, -29, -126, + -81, -29, -125, -85, -29, -125, -68, -29, -125, -119, 32, -29, -125, -107, -29, + -126, -95, -29, -126, -92, -29, -125, -85, 58, + }, + // Korean + { + -20, -80, -72, -22, -77, -96, 58, 32, -19, -113, -84, -19, -107, -88, 32, -19, + -116, -116, -20, -99, -68, 58, + }, + // Polish + { + 85, 119, 97, 103, 97, 58, 32, 119, 32, 116, 121, 109, 32, 112, 108, 105, 107, 117, + 58, + }, + // Portugeuse + { + 79, 98, 115, 101, 114, 118, 97, -61, -89, -61, -93, 111, 58, 32, 105, 110, 99, + 108, 117, 105, 110, 100, 111, 32, 97, 114, 113, 117, 105, 118, 111, 58, + }, + // Russian + { + -48, -97, -47, -128, -48, -72, -48, -68, -48, -75, -47, -121, -48, -80, -48, -67, + -48, -72, -48, -75, 58, 32, -48, -78, -48, -70, -48, -69, -47, -114, -47, -121, + -48, -75, -48, -67, -48, -72, -48, -75, 32, -47, -124, -48, -80, -48, -71, -48, + -69, -48, -80, 58, + }, + // Turkish + { + 78, 111, 116, 58, 32, 101, 107, 108, 101, 110, 101, 110, 32, 100, 111, 115, 121, + 97, 58, + }, + // Simplified Chinese + { + -26, -77, -88, -26, -124, -113, 58, 32, -27, -116, -123, -27, -112, -85, -26, + -106, -121, -28, -69, -74, 58, + }, + // Spanish + { + 78, 111, 116, 97, 58, 32, 105, 110, 99, 108, 117, 115, 105, -61, -77, 110, 32, + 100, 101, 108, 32, 97, 114, 99, 104, 105, 118, 111, 58, + }, +} diff --git a/infra/msvc_filter_showincludes/msvc_filter_showincludes_test.go b/infra/msvc_filter_showincludes/msvc_filter_showincludes_test.go new file mode 100644 index 00000000..82868f68 --- /dev/null +++ b/infra/msvc_filter_showincludes/msvc_filter_showincludes_test.go @@ -0,0 +1,234 @@ +// Copyright 2023 EngFlow, Inc. All rights reserved. +// +// 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 main + +import ( + "testing" + + "github.com/google/go-cmp/cmp" +) + +func TestShowIncludesFilter(t *testing.T) { + for _, test := range []struct { + name string + output string + want string + }{ + { + name: "empty", + output: "", + want: "", + }, + { + name: "in_execroot", + output: `Note: including file: C:\worker\work\2\exec\hello.h`, + want: `Note: including file: hello.h`, + }, + { + name: "in_subdir_backslash", + output: `Note: including file: C:\worker\work\2\exec\cpp\hello.h`, + want: `Note: including file: cpp\hello.h`, + }, + { + name: "in_subdir_slash", + output: `Note: including file: C:\worker\work\2\exec\cpp/hello.h`, + want: `Note: including file: cpp/hello.h`, + }, + { + name: "space_preserved", + output: `Note: including file: C:\worker\work\2\exec\cpp/hello.h `, + want: `Note: including file: cpp/hello.h `, + }, + { + name: "random_unit_name", + output: `Note: including file: C:\worker\work\abcd123\exec\cpp/hello.h`, + want: `Note: including file: cpp/hello.h`, + }, + { + name: "drive_letter", + output: `Note: including file: D:\worker\work\2\exec\cpp/hello.h`, + want: `Note: including file: cpp/hello.h`, + }, + { + name: "spanish:", + output: `Nota: inclusión del archivo: C:\worker\work\2\exec\cpp/hola.h`, + want: `Nota: inclusión del archivo: cpp/hola.h`, + }, + { + name: "realisitc", + output: ` +hello.cc +Note: including file: C:\worker\work\2\exec\cpp/hello.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\string +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\yvals_core.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\sal.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\concurrencysal.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vadefs.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xkeycheck.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xstring +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\iosfwd +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\yvals.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\crtdbg.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_new_debug.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_new.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\crtdefs.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\use_ansi.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstdio +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wstdio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_stdio_config.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstring +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\string.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_memory.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_memcpy_s.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\errno.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_string.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wstring.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cwchar +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\wchar.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wconio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wctype.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wdirect.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_share.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wprocess.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wstdlib.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wtime.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\sys/stat.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\sys/types.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xstddef +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstddef +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stddef.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xtr1common +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstdlib +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\math.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_math.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdlib.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_malloc.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_search.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\limits.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\initializer_list +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xmemory +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstdint +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\stdint.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\limits +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cfloat +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\float.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\climits +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\intrin0.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\intrin0.inl.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\isa_availability.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\new +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\exception +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\type_traits +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\malloc.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_exception.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\eh.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_terminate.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xatomic.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xutility +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\utility +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cctype +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\ctype.h +`, + want: ` +hello.cc +Note: including file: cpp/hello.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\string +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\yvals_core.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\sal.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\concurrencysal.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vadefs.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xkeycheck.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xstring +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\iosfwd +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\yvals.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\crtdbg.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_new_debug.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_new.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\crtdefs.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\use_ansi.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstdio +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wstdio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_stdio_config.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstring +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\string.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_memory.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_memcpy_s.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\errno.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_string.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wstring.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cwchar +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\wchar.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wconio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wctype.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wdirect.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wio.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_share.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wprocess.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wstdlib.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_wtime.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\sys/stat.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\sys/types.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xstddef +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstddef +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stddef.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xtr1common +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstdlib +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\math.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_math.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdlib.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_malloc.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_search.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\limits.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\initializer_list +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xmemory +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cstdint +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\stdint.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\limits +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cfloat +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\float.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\climits +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\intrin0.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\intrin0.inl.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\isa_availability.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\new +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\exception +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\type_traits +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\malloc.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\vcruntime_exception.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\eh.h +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\corecrt_terminate.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xatomic.h +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\xutility +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\utility +Note: including file: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\cctype +Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\ctype.h +`, + }, + } { + t.Run(test.name, func(t *testing.T) { + got := showIncludesRe.ReplaceAllString(test.output, showIncludesReplacement) + if got != test.want { + t.Errorf("got:\n%s\n\nwant:\n%s\n\ndiff:%s", got, test.want, cmp.Diff(got, test.want)) + } + }) + } +} diff --git a/infra/setup-buck2.sh b/infra/setup-buck2.sh new file mode 100755 index 00000000..a8bf46df --- /dev/null +++ b/infra/setup-buck2.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -xe + +# Get the Buck2 binary - pinned to https://github.com/facebook/buck2/releases/tag/2025-05-06 +curl -L -O https://github.com/facebook/buck2/releases/download/2025-05-06/buck2-x86_64-unknown-linux-musl.zst + +# Unpack the binary. +unzstd buck2-x86_64-unknown-linux-musl.zst + +# Change its name and make it executable. +mv buck2-x86_64-unknown-linux-musl buck2-exe +chmod +x buck2-exe + +# Alternatively, for a platform-independent method that requires building from source: +# Install the specific nightly version +# rustup install nightly-2025-02-16 + +# Use that specific version to install Buck2 +# cargo +nightly-2025-02-16 install --git https://github.com/facebook/buck2 --rev 201beb86106fecdc84e30260b0f1abb5bf576988 buck2 diff --git a/infra/test-all.py b/infra/test-all.py new file mode 100755 index 00000000..8b9e4f17 --- /dev/null +++ b/infra/test-all.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 + +import argparse +import os +import subprocess +import sys + +EXTRA_FLAGS = { + "ios": ["--config=ios"], + "swift": ["--config=clang"], +} + + +def report_error(msg): + print(msg, file=sys.stderr) + sys.exit(1) + + +def validate_env(): + for key in ("ARCH", "OS", "EXECUTION_TYPE", "OPAL_RPC_CREDENTIALS"): + if not os.getenv(key): + report_error(f"{key} not set") + + +def find_tests(package): + os_name = os.getenv("OS") + remote = os.getenv("EXECUTION_TYPE") + + # Remove tests based on tags and environment + query = f""" + let t = tests(//{package}/...) in + $t + - attr(tags, no-ci, $t) + - attr(tags, no-{os_name}-ci, $t) + - attr(tags, no-{remote}-ci, $t) + """.strip() + + print(f"Executing query to find test targets:\n{query}") + args = ["bazel", "query", "--output=label", "--", query] + result = subprocess.run(args, capture_output=True) + output = result.stdout.decode() + return [t for t in output.split("\n") if t] + + +def run_tests(package): + targets = find_tests(package) + if not targets: + print(f"No targets found for {package}, skipping.") + return 0 + print(f"Executing tests {targets}") + + os_arch = os.getenv("OS") + "_" + os.getenv("ARCH") + flags = ["--config=ci"] + if os.getenv("EXECUTION_TYPE") == "remote": + flags += [ + "--config=remote_" + os_arch, + "--config=opal", + ] + else: + flags += [ + "--config=opal_bes", + "--config=opal_auth", + ] + + if package in EXTRA_FLAGS: + flags += EXTRA_FLAGS[package] + + print(f"---------------\nTesting {package}...") + sys.stdout.flush() + + args = ["bazel", "test"] + flags + ["--"] + targets + result = subprocess.run(args, check=False) + sys.stdout.flush() + sys.stderr.flush() + return result.returncode + + +def main(): + parser = argparse.ArgumentParser( + description="Runs example test suites", fromfile_prefix_chars="@" + ) + parser.add_argument( + "--package", + required=False, + help="Package to test.", + ) + parser.add_argument( + "--validate-env", + action=argparse.BooleanOptionalAction, + help="Whether to validate environment variables", + ) + opts = parser.parse_args() + + if opts.validate_env: + validate_env() + + package = opts.package + + returncode = run_tests(opts.package) + if returncode != 0: + sys.exit(returncode) + + +if __name__ == "__main__": + main() diff --git a/infra/test-buck2.sh b/infra/test-buck2.sh new file mode 100755 index 00000000..0fbde1e5 --- /dev/null +++ b/infra/test-buck2.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -xe +shopt -s expand_aliases + +alias buck2="$(realpath buck2-exe)" + +# Run cpp example +cd buck2/cpp +buck2 build --remote-only //:cpp_lib +buck2 test --remote-only //:cpp_test +cd .. + +# Run python example +cd python +buck2 build --remote-only //main:check_main +buck2 test --remote-only //hello:hello_unittest_test +cd .. + +# Run go example +cd golang +buck2 build --remote-only //go:hello +buck2 test --remote-only //go/greeting:greeting_test +cd .. + +# Run rust example +cd rust +buck2 build --remote-only //:main +buck2 test --remote-only //:test +cd .. diff --git a/ios/BUILD b/ios/BUILD new file mode 100644 index 00000000..b097253b --- /dev/null +++ b/ios/BUILD @@ -0,0 +1,55 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_apple//apple:ios.bzl", "ios_application", "ios_ui_test", "ios_unit_test") +load("@rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "HelloAppLibrary", + srcs = ["HelloApp.swift"], +) + +ios_application( + name = "HelloApp", + bundle_id = "com.engflow.helloapp", + families = [ + "iphone", + "ipad", + ], + minimum_os_version = "26.0", + deps = [":HelloAppLibrary"], +) + +build_test( + name = "HelloApp_build_test", + targets = [ + ":HelloApp", + ], +) + +swift_library( + name = "HelloTestLib", + testonly = True, + srcs = ["HelloTest.swift"], +) + +ios_unit_test( + name = "HelloTest", + minimum_os_version = "26.0", + deps = [":HelloTestLib"], +) + +swift_library( + name = "HelloAppUITestLib", + testonly = True, + srcs = [ + "HelloAppUITest.swift", + ], + module_name = "HelloAppUITest", +) + +ios_ui_test( + name = "HelloAppUITest", + minimum_os_version = "26.0", + runner = "@rules_apple//apple/testing/default_runner:ios_xctestrun_ordered_runner", + test_host = ":HelloApp", + deps = [":HelloAppUITestLib"], +) diff --git a/ios/HelloApp.swift b/ios/HelloApp.swift new file mode 100644 index 00000000..2e1f9bd8 --- /dev/null +++ b/ios/HelloApp.swift @@ -0,0 +1,23 @@ +import SwiftUI + +@main +struct HelloApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + .accessibility(identifier: "HELLO_WORLD") + } + .padding() + } +} diff --git a/ios/HelloAppUITest.swift b/ios/HelloAppUITest.swift new file mode 100644 index 00000000..3f5a8a5d --- /dev/null +++ b/ios/HelloAppUITest.swift @@ -0,0 +1,22 @@ +import XCTest + +class HelloAppUITest: XCTestCase { + var application: XCUIApplication! + + override func setUp() { + super.setUp() + continueAfterFailure = false + application = .init() + application.launch() + } + + override func tearDown() { + application.terminate() + application = nil + } + + func testIsActive() { + XCTAssertTrue(application.staticTexts["HELLO_WORLD"].exists) + } +} + diff --git a/ios/HelloTest.swift b/ios/HelloTest.swift new file mode 100644 index 00000000..a7d764e0 --- /dev/null +++ b/ios/HelloTest.swift @@ -0,0 +1,10 @@ +import Testing + +@Suite +struct HelloTest { + @Test + func example() { + print("Hello from HelloTest") + #expect(1 + 1 == 2) + } +} diff --git a/java/BUILD b/java/BUILD new file mode 100644 index 00000000..e69de29b diff --git a/java/com/engflow/binaryinput/BUILD b/java/com/engflow/binaryinput/BUILD new file mode 100644 index 00000000..4402ecd2 --- /dev/null +++ b/java/com/engflow/binaryinput/BUILD @@ -0,0 +1,53 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_java//java:defs.bzl", "java_binary", "java_library") + +NUM_FILES = 100 + +# Generates a number of java files based on the value of NUM_FILES +# Each file is named HelloX.java where X is the number of the file +# Each file contains a class with a greetNum method that prints "Hello" + the number of the file +[genrule( + name = "Hello" + str(x), + outs = ["Hello" + str(x) + ".java"], + cmd_bash = "echo 'package com.engflow.binaryinput;" + "\n" + + "public class Hello" + str(x) + + " { public static void greetNum() { System.out.println(\"Hello " + str(x) + "\"); } }' > $@", +) for x in range( + 1, + NUM_FILES + 1, +)] + +# Generates a java library that contains all the generated java files +[java_library( + name = "genbinary" + str(x), + srcs = [":Hello" + str(x) + ".java" for x in range( + 1, + NUM_FILES + 1, + )], + visibility = ["//visibility:public"], +) for x in range( + 1, + NUM_FILES + 1, +)] + +# Main class +java_binary( + name = "main", + srcs = ["Main.java"], + args = [str(NUM_FILES)], + main_class = "com.engflow.binaryinput.Main", + deps = [ + ":genbinary" + str(x) + for x in range( + 1, + NUM_FILES + 1, + ) + ], +) + +build_test( + name = "main_test", + targets = [ + ":main", + ], +) diff --git a/java/com/engflow/binaryinput/Main.java b/java/com/engflow/binaryinput/Main.java new file mode 100644 index 00000000..d430ce2f --- /dev/null +++ b/java/com/engflow/binaryinput/Main.java @@ -0,0 +1,21 @@ +package com.engflow.binaryinput; + +import java.lang.reflect.InvocationTargetException; + +public class Main { + public static void main(String[] args) { + try { + // args[0] is the number of files to read + int numFiles = Integer.parseInt(args[0]); + + // Load and run the greetNum method from each class + for(int i = 1; i <= numFiles; i++){ + Class clazz = Class.forName("com.engflow.binaryinput.Hello" + i); + clazz.getMethod("greetNum").invoke(null); + } + + } catch (ClassNotFoundException | InvocationTargetException | IllegalAccessException | NoSuchMethodException e) { + throw new RuntimeException(e); + } + } +} diff --git a/java/com/engflow/binaryinput/README.md b/java/com/engflow/binaryinput/README.md new file mode 100644 index 00000000..e5e93a7e --- /dev/null +++ b/java/com/engflow/binaryinput/README.md @@ -0,0 +1,49 @@ +# Multiple Binary Input Example + +## Usage +Set the `NUM_FILES` variable in the BUILD file to the desired input size. + +To generate the test files, build the `genbinary` library using the `genrule`: +```sh +bazel build //java/com/engflow/binaryinput:genbinary{1..} +``` + +Then, the program can be built with the following command: +```sh +bazel build //java/com/engflow/binaryinput:main +``` + +## How It Works + +1. **Generation of Java Binaries:** + - The `genrule` in the `BUILD` file generates a specified number of Java classes (`Hello1.java`, `Hello2.java`, ..., `HelloN.java`). + - Each generated class contains a `greetNum` method that prints a unique message. + - A java library is created for each file (`Hello1.jar`, `Hello2.jar`, ..., `HelloN.jar`). + +2. **Building the main target:** + - The previously created libraries are added to the main class as dependencies through a for loop. + - The consistent naming scheme of the libraries simplifies their inclusion in the build process. + +3. **Main Class Execution:** + - The `Main.java` file in `binaryinput` dynamically loads each generated class using reflection. + - It then invokes the `greetNum` method of each class, printing the corresponding message. + +## Configuration + +The number of generated files is controlled by the `NUM_FILES` variable in the `BUILD` file of the `binaryinput` package. Modify this variable to change the number of generated classes and observe the performance impact on Engflow's remote execution and caching service. + +## Example + +To generate and run the program with 10 input binary files: + +1. Set `NUM_FILES` to 10 in `java/com/engflow/binaryinput/BUILD`. +2. Build the `genbinary` library: + ```sh + bazel build //java/com/engflow/binaryinput:genbinary{1..10} + ``` +3. Build the `main` binary: + ```sh + bazel build //java/com/engflow/binaryinput:main + ``` + +This will generate 10 Java classes, build the `genbinary` library, and build the `main` binary. Using `bazel run` will also print messages from each generated class. diff --git a/java/com/engflow/example/BUILD b/java/com/engflow/example/BUILD index 3cb62264..396b5a09 100644 --- a/java/com/engflow/example/BUILD +++ b/java/com/engflow/example/BUILD @@ -1,12 +1,16 @@ +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_test.bzl", "java_test") + package(default_visibility = ["//visibility:public"]) java_library( - name = "example", - srcs = glob(["Example.java"]), + name = "example", + srcs = ["Example.java"], ) java_test( - name = "ExampleTest", - srcs = glob(["ExampleTest.java"]), - deps = [":example"], + name = "ExampleTest", + size = "small", + srcs = ["ExampleTest.java"], + deps = [":example"], ) diff --git a/java/com/engflow/notificationqueue/BUILD b/java/com/engflow/notificationqueue/BUILD new file mode 100644 index 00000000..b117334b --- /dev/null +++ b/java/com/engflow/notificationqueue/BUILD @@ -0,0 +1,38 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@grpc-java//:java_grpc_library.bzl", "java_grpc_library") +load("@rules_java//java:java_binary.bzl", "java_binary") + +package(default_visibility = ["//visibility:public"]) + +java_binary( + name = "client", + srcs = [ + "Client.java", + "NotificationOptions.java", + ], + main_class = "com.engflow.notificationqueue.Client", + deps = [ + "//java/com/engflow/notificationqueue/demoserver:server_java_grpc_proto", + "//java/com/engflow/notificationqueue/demoserver:server_java_proto", + "//java/com/engflow/notificationqueue/demoserver:server_proto", + "@engflowapis-java//engflow/eventstore/v1", + "@engflowapis-java//engflow/notification/v1", + "@grpc-java//api", + "@grpc-java//context", + "@grpc-java//netty", + "@grpc-java//stub", + "@maven//:com_google_code_findbugs_jsr305", + "@maven//:com_google_guava_guava", + "@maven//:commons_cli_commons_cli", + "@maven//:io_netty_netty_handler", + "@protobuf//:any_proto", + "@protobuf//java/core", + ], +) + +build_test( + name = "client_test", + targets = [ + ":client", + ], +) diff --git a/java/com/engflow/notificationqueue/Client.java b/java/com/engflow/notificationqueue/Client.java new file mode 100644 index 00000000..499e3452 --- /dev/null +++ b/java/com/engflow/notificationqueue/Client.java @@ -0,0 +1,304 @@ +package com.engflow.notificationqueue; + +import com.engflow.eventstore.v1.proto.BuildLifecycleEventNotification; +import com.engflow.eventstore.v1.proto.EventStoreGrpc; +import com.engflow.eventstore.v1.proto.GetInvocationRequest; +import com.engflow.eventstore.v1.proto.StreamedBuildEvent; +import com.engflow.notification.v1.proto.Notification; +import com.engflow.notification.v1.proto.NotificationQueueGrpc; +import com.engflow.notification.v1.proto.PullNotificationRequest; +import com.engflow.notification.v1.proto.PullNotificationResponse; +import com.engflow.notification.v1.proto.QueueId; +import com.engflow.notificationqueue.demoserver.EngFlowRequest; +import com.engflow.notificationqueue.demoserver.EngFlowResponse; +import com.engflow.notificationqueue.demoserver.ForwardingGrpc; +import com.google.common.base.Preconditions; +import com.google.common.base.Strings; +import com.google.protobuf.Any; +import com.google.protobuf.InvalidProtocolBufferException; +import io.grpc.ManagedChannel; +import io.grpc.Metadata; +import io.grpc.StatusRuntimeException; +import io.grpc.netty.GrpcSslContexts; +import io.grpc.netty.NegotiationType; +import io.grpc.netty.NettyChannelBuilder; +import io.grpc.stub.ClientCallStreamObserver; +import io.grpc.stub.ClientResponseObserver; +import io.grpc.stub.MetadataUtils; +import io.grpc.stub.StreamObserver; +import io.netty.handler.ssl.SslContextBuilder; +import java.io.File; +import java.io.IOException; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import javax.annotation.Nullable; +import javax.net.ssl.SSLException; + +class Client { + + public static void main(String[] args) throws Exception { + NotificationOptions clientOptions; + try { + clientOptions = new NotificationOptions().parseOptions(args); + } catch (IllegalArgumentException e) { + System.err.println(e); + System.err.println(" --notification_queue_endpoint"); + System.err.println(" --queue_name"); + System.err.println( + "Please provide also authentication credentials " + + "and if you want to forward then add another external server endpoint"); + return; + } + + /** + * Channel used by the NotificationQueueGrpc and the EventStoreGrpc stub. It is also possible to + * use two separated channels. + */ + ManagedChannel channel = null; + try { + channel = + createChannel( + clientOptions.getOption("notification_queue_endpoint"), + clientOptions.getOption("tls_certificate"), + clientOptions.getOption("tls_key")); + + } catch (IllegalArgumentException e) { + System.err.println("Unable to open channel to " + args[0].split("=")[1]); + throw new IllegalArgumentException(e); + } catch (IllegalStateException e) { + System.err.println("Unable to open channel to " + args[0].split("=")[1]); + throw new IllegalStateException(e); + } + + ManagedChannel forwardChannel = null; + if (!Strings.isNullOrEmpty(clientOptions.getOption("forward"))) { + try { + forwardChannel = createChannel(clientOptions.getOption("forward"), null, null); + } catch (IllegalArgumentException e) { + System.err.println("Could not open forwarding channel"); + } catch (IllegalStateException e) { + System.err.println("Could not open forwarding channel"); + } catch (IOException e) { + System.err.println("Could not open forwarding channel"); + } + } + try { + final Metadata header = new Metadata(); + if (!Strings.isNullOrEmpty(clientOptions.getOption("token"))) { + Metadata.Key methodKey = + Metadata.Key.of("x-engflow-auth-method", Metadata.ASCII_STRING_MARSHALLER); + header.put(methodKey, "jwt-v0"); + Metadata.Key tokenKey = + Metadata.Key.of("x-engflow-auth-token", Metadata.ASCII_STRING_MARSHALLER); + header.put(tokenKey, clientOptions.getOption("token")); + } + pull(channel, clientOptions.getOption("queue_name"), header, forwardChannel); + } finally { + if (channel != null) { + channel.shutdownNow(); + if (forwardChannel != null) { + forwardChannel.shutdownNow(); + } + try { + channel.awaitTermination(10, TimeUnit.SECONDS); + if (forwardChannel != null) { + forwardChannel.awaitTermination(10, TimeUnit.SECONDS); + } + } catch (InterruptedException e) { + System.out.println("Could not shut down channel within timeout"); + } + } + } + } + + /** + * Gets the notification streams from a {@link NotificationQueueGrpc} stub and then calls + * getInvocation for each received notification + * + * @param channel a grpc channel for cluster connection + * @param queueName name of the queue to listen to + * @param header metadata for token authentication (if needed) + * @throws InterruptedException + */ + private static void pull( + ManagedChannel channel, String queueName, Metadata header, ManagedChannel forwardChannel) + throws InterruptedException { + + NotificationQueueGrpc.NotificationQueueStub asyncStub = NotificationQueueGrpc.newStub(channel); + asyncStub = asyncStub.withInterceptors(MetadataUtils.newAttachHeadersInterceptor(header)); + final CountDownLatch finishLatch = new CountDownLatch(1); + System.out.println("Listening for build events..."); + var observer = + new ClientResponseObserver() { + private ClientCallStreamObserver requestStream; + + @Override + public void beforeStart(ClientCallStreamObserver requestStream) { + this.requestStream = requestStream; + } + + @Override + public void onNext(PullNotificationResponse response) { + if (!response.hasNotification()) { + return; + } + Notification streamedNotification = response.getNotification().getNotification(); + System.out.println("Notification: " + streamedNotification.toString()); + try { + /** Forward notification data to external server */ + forwardToBESStub( + forwardChannel, + streamedNotification.getId().toString(), + streamedNotification.getPayload().toString()); + } catch (Exception e) { + System.err.println("Could not forward notification to external sever..."); + } + Any notificationContent = streamedNotification.getPayload(); + try { + BuildLifecycleEventNotification lifeCycleEvent = + notificationContent.unpack(BuildLifecycleEventNotification.class); + /** + * Check if this is an invocation finished event. + */ + if (lifeCycleEvent.getKindCase().name().equals("INVOCATION_FINISHED")) { + String invocation = lifeCycleEvent.getInvocationFinished().getInvocationId(); + try { + /** + * Fetch the invocation using the grpc {@link EventStoreGrpc} stub using the + * acquired invocation id + */ + getInvocations(channel, invocation, header, forwardChannel); + } catch (InterruptedException e) { + System.err.println("Could not get invocation with uuid " + invocation); + } + } + + } catch (InvalidProtocolBufferException e) { + throw new RuntimeException(e); + } + requestStream.onNext( + PullNotificationRequest.newBuilder() + .addAcknowledgementTokens(response.getNotification().getToken()) + .build()); + } + + @Override + public void onError(Throwable t) { + System.err.println("Error on request: " + t.getMessage()); + finishLatch.countDown(); + } + + @Override + public void onCompleted() { + System.out.println("Finished pulling notifications"); + finishLatch.countDown(); + } + }; + asyncStub.pull(observer); + + observer.requestStream.onNext( + PullNotificationRequest.newBuilder() + .setQueue(QueueId.newBuilder().setName(queueName).build()) + .build()); + + finishLatch.await(); + } + + /** + * Gets an invocation from the {@link EventStoreGrpc} stub + * + * @param channel a grpc channel for cluster connection + * @param invocationId the id of the required notification + * @param header metadata for token authentication (if needed) + * @throws InterruptedException + */ + private static void getInvocations( + ManagedChannel channel, String invocationId, Metadata header, ManagedChannel forwardChannel) + throws InterruptedException { + EventStoreGrpc.EventStoreStub asyncStub = EventStoreGrpc.newStub(channel); + asyncStub = asyncStub.withInterceptors(MetadataUtils.newAttachHeadersInterceptor(header)); + asyncStub.getInvocation( + GetInvocationRequest.newBuilder().setInvocationId(invocationId).build(), + new StreamObserver() { + @Override + public void onNext(StreamedBuildEvent response) { + System.out.println("Invocation: " + response.toString()); + String buildEvent = response.getEvent().toString(); + try { + /** Forward invocation data to external server */ + forwardToBESStub(forwardChannel, invocationId, buildEvent); + } catch (Exception e) { + System.err.println("Could not forward invocation to external sever..."); + } + } + + @Override + public void onError(Throwable t) { + System.err.println("Error on request: " + t.getMessage()); + } + + @Override + public void onCompleted() { + System.out.println("Finished pulling invocation"); + } + }); + } + + /** + * Forwards data to an external grpc stub. + * + * @param channel a grpc channel for connection + * @param id the id of the data to send + * @param payload the payload + */ + private static void forwardToBESStub(ManagedChannel channel, String id, String payload) { + if (channel == null) { + return; + } + final ForwardingGrpc.ForwardingBlockingStub blockingStub = + ForwardingGrpc.newBlockingStub(channel); + EngFlowRequest request = EngFlowRequest.newBuilder().setId(id).setPayload(payload).build(); + EngFlowResponse response; + try { + response = blockingStub.forwardStream(request); + System.out.println("Forwarding: " + response.getMessage()); + } catch (StatusRuntimeException e) { + System.out.println("Could not forward data to external server."); + return; + } + } + + private static ManagedChannel createChannel( + String endpoint, @Nullable String clientCertificate, @Nullable String clientKey) + throws IOException { + Preconditions.checkArgument( + !Strings.isNullOrEmpty(endpoint), + "Empty --notification_queue_endpoint, expected \"protocol://host[:port]\""); + + boolean tls = endpoint.startsWith("grpcs://"); + Preconditions.checkArgument( + tls || endpoint.startsWith("grpc://"), + "Bad --notification_queue_endpoint value \"" + + endpoint + + "\", expected \"grpc://\" or \"grpcs://\" protocol"); + endpoint = endpoint.substring(tls ? "grpcs://".length() : "grpc://".length()); + + NettyChannelBuilder builder = + NettyChannelBuilder.forTarget(endpoint) + .negotiationType(tls ? NegotiationType.TLS : NegotiationType.PLAINTEXT); + + if (tls) { + try { + SslContextBuilder contextBuilder = GrpcSslContexts.forClient(); + if (!Strings.isNullOrEmpty(clientCertificate) && !Strings.isNullOrEmpty(clientKey)) { + contextBuilder = + contextBuilder.keyManager(new File(clientCertificate), new File(clientKey)); + } + builder.sslContext(contextBuilder.build()); + } catch (SSLException e) { + throw new IllegalStateException(e); + } + } + return builder.build(); + } +} diff --git a/java/com/engflow/notificationqueue/NotificationOptions.java b/java/com/engflow/notificationqueue/NotificationOptions.java new file mode 100644 index 00000000..2c339160 --- /dev/null +++ b/java/com/engflow/notificationqueue/NotificationOptions.java @@ -0,0 +1,106 @@ +package com.engflow.notificationqueue; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; + +public class NotificationOptions { + Options options = new Options(); + CommandLineParser parser = new DefaultParser(); + CommandLine cmd; + + public NotificationOptions() {} + + public NotificationOptions parseOptions(String[] args) { + instantiateOptions(); + try { + cmd = parser.parse(options, args); + } catch (ParseException e) { + throw new IllegalArgumentException(e); + } + + if (cmd.hasOption("queue_name") && cmd.hasOption("notification_queue_endpoint")) { + return this; + } else { + throw new IllegalArgumentException("Please provide the arguments..."); + } + } + + public String getOption(String value) { + return cmd.getOptionValue(value); + } + + private void instantiateOptions() { + Option queueName = + Option.builder() + .longOpt("queue_name") + .argName("property=value") + .hasArgs() + .valueSeparator() + .numberOfArgs(2) + .desc("The name of the queue that you want to receive notifications from.") + .build(); + options.addOption(queueName); + + Option endpoint = + Option.builder() + .longOpt("notification_queue_endpoint") + .argName("property=value") + .hasArgs() + .valueSeparator() + .numberOfArgs(2) + .desc( + "The service endpoint in protocol://host:port format. The protocol must be 'grpc'" + + " or 'grpcs' signifying plaintext or TLS-encrypted communication" + + " respectively.") + .build(); + options.addOption(endpoint); + + Option certificate = + Option.builder() + .longOpt("tls_certificate") + .argName("property=value") + .hasArgs() + .valueSeparator() + .numberOfArgs(2) + .desc("The path of the mTLS certificate to use as the client certificate.") + .build(); + options.addOption(certificate); + + Option key = + Option.builder() + .longOpt("tls_key") + .argName("property=value") + .hasArgs() + .valueSeparator() + .numberOfArgs(2) + .desc("Path to the `--tls_certificate`'s private key.") + .build(); + options.addOption(key); + + Option remoteHeader = + Option.builder() + .longOpt("token") + .argName("property=value") + .hasArgs() + .valueSeparator() + .numberOfArgs(2) + .desc("Token for open access clusters.") + .build(); + options.addOption(remoteHeader); + + Option forwardSever = + Option.builder() + .longOpt("forward") + .argName("property=value") + .hasArgs() + .valueSeparator() + .numberOfArgs(2) + .desc("The external service endpoint in grpc://host:port format.") + .build(); + options.addOption(forwardSever); + } +} diff --git a/java/com/engflow/notificationqueue/README.md b/java/com/engflow/notificationqueue/README.md new file mode 100644 index 00000000..b970a66a --- /dev/null +++ b/java/com/engflow/notificationqueue/README.md @@ -0,0 +1,140 @@ +# Using the notification queue and event store APIs + +This document explains how to make use of the **notification queue API** to +obtain the notifications for a given build and use the notification data +to obtain invocation events from the **event store API**. To do so, +the [EngFlow API](https://github.com/EngFlow/engflowapis) is used as external +dependency (see [WORKSPACE](../../../../WORKSPACE)). + +# Running the client + +The first argument you must have to execute the client is the cluster `grpc` endpoint +you want to listen to. +The second argument is the queue name. As in this example we are interested in +getting lifecycle events from the cluster, we pull from the queue called `lifecycle-events`. + +1. `--notification_queue_endpoint=CLUSTER_URL` the URL of the cluster gRPC + server. Must start with `grpc://` or `grpcs://` +2. `--queue_name=eventstore/lifecycle-events` holds the name of the queue to listen + +Next, you must provide authentication information so the client can establish +a connection to the EngFlow cluster, unless the cluster is totally open. +As for today, two authentication methods are available; certificates or +authentication tokens. These arguments are optional and if they are not given +but are required by the cluster, the connection is rejected. + +### Using certificates to run the client + +In the first case you should have valid credentials in `.crt` and `.key` files. Add +the full path of your certificate files into the following options + +1. `--tls_certificate=certificate file containing your public key` + holds the path of the crt file to access the cluster. + Only needed for `grpcs://` connections +2. `--tls_key=/path/to/your/file containing your private key` + holds the path of the key file used to access the cluster. + Only needed for `grpcs://` connections + +Run the client using + +```bash +bazel run //java/com/engflow/notificationqueue:client -- \ + '--notification_queue_endpoint=grpcs://example.cluster.engflow.com' '--queue_name=eventstore/lifecycle-events' \ + '--tls_certificate=example_client.crt' '--tls_key=example_client.key' +``` + + +### Using JWT to run the client + +In the second authentication case you should count with a valid token. On EngFlow clusters you may get a new access token by +accessing the cluster's UI under the tab `Getting Started`. To execute the client against your cluster, add the argument + +1. `--token=your-long-JWT-token` + holds the authentication token. + Needed for both `grpc://` and `grpcs://` connections + +Run the client using + +```bash +bazel run //java/com/engflow/notificationqueue:client -- \ + '--notification_queue_endpoint=grpcs://$CLUSTER.cluster.engflow.com' '--queue_name=eventstore/lifecycle-events' \ + '--token=DKiJ3eic9l150dDmzdMsaiu0K5boBle0UlkCefbgwzBE7G7FItgi2AOFpz6pkcMUFV3SkpAGikMckcaQhTTKUmGeZKpLh9gT6vTsi0v' +``` + + +### Forwarding data to external server + +One useful use case for the **notification** and **event store APIs** is forwarding the +received data to external servers, for instance another _build event store_ or _result store_ sever. +The current client example implements communication +with a demo grpc stub. To do so, the client uses `Request` and `Response` +abstractions provided by a [server proto definition]. + +To execute a client that forwards information to an external server you add the flag +`--forward`. Let us first execute a demonstration server that will receive the data from +the client. To execute the server run + +```bash +bazel run //java/com/engflow/notificationqueue/demoserver:server +``` + +This will start the demo server listening at `localhost:50051`. Now you can start the client with a given +authentication method and the forwarding endpoint + +```bash +bazel run //java/com/engflow/notificationqueue:client -- \ + '--notification_queue_endpoint=grpcs://example.cluster.engflow.com' '--queue_name=eventstore/lifecycle-events' \ + '--tls_certificate=example_client.crt' '--tls_key=example_client.key' '--forward=grpc://localhost:50051' +``` + +# Executing a foo application + +You may now build any targets on the cluster. Open your favorite foo project and build it using +the runtime flags `remote_cache` and `bes_backend` arguments like this + +```bash +bazel build //... '--remote_cache=grpcs://example.cluster.engflow.com' '--bes_backend=grpcs://example.cluster.engflow.com' +``` + +You should see a series of notifications like this one + +```json +{ + type_url: "type.googleapis.com/engflow.eventstore.v1.BuildLifecycleEventNotification" + value: "\n\adefault\022$9608f439-4c3e-4909-8a0c-f78810322b6b\"\021command_name=test\"\021protocol_name=BEP\"0user_keyword=engflow:CiCdPipelineName=post-merge\"7user_keyword=engflow:CiCdJobName=ci-runners-test-matrix\"\'user_keyword=engflow:Requester=anfelbar\"%user_keyword=engflow:StreamSource=BES\"/user_keyword=engflow:StreamType=ClientBEPStream\272\006&\n$5173658c-4595-4978-8db0-2942b1e7ca13" +} +``` + +The last value contains the `uuid` for one invocation. From the previous example the invocation `uuid` is `5173658c-4595-4978-8db0-2942b1e7ca13`. +Using this `uuid` and the EventStore stub we get invocation data (see [getInvocations code in Client.java][getinvocations]): + +```json +Invocation: continuation_token: "CiQwNzBkMjViZi0zZWFjLTRlYTYtODVhOC00ZjA2NDMxNjU2NTcQAA==" +event { + stream_id { + build_id: "3a38c04f-233d-465f-a91d-f328c21ab832" + invocation_id: "070d25bf-3eac-4ea6-85a8-4f0643165657" + } + service_level: INTERACTIVE + notification_keywords: "command_name=test" + notification_keywords: "protocol_name=BEP" + notification_keywords: "user_keyword=engflow:CiCdPipelineName=post-merge" + notification_keywords: "user_keyword=engflow:CiCdJobName=runners-matrix" + notification_keywords: "user_keyword=engflow:Requester=userxyz" + notification_keywords: "user_keyword=engflow:StreamSource=BES" + notification_keywords: "user_keyword=engflow:StreamType=ClientBEPStream" + build_event { + event_time { + seconds: 1752547458 + nanos: 781000000 + } + invocation_attempt_started { + attempt_number: 1 + } + } +} +``` + + +[server proto definition]: demoserver/server.proto +[getinvocations]: https://github.com/EngFlow/example/blob/c9a30c214d487385313245cca24c6b7f3e867785/java/com/engflow/notificationqueue/Client.java#L201 \ No newline at end of file diff --git a/java/com/engflow/notificationqueue/demoserver/BUILD b/java/com/engflow/notificationqueue/demoserver/BUILD new file mode 100644 index 00000000..9cca5105 --- /dev/null +++ b/java/com/engflow/notificationqueue/demoserver/BUILD @@ -0,0 +1,50 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@grpc-java//:java_grpc_library.bzl", "java_grpc_library") +load("@protobuf//bazel:java_proto_library.bzl", "java_proto_library") +load("@protobuf//bazel:proto_library.bzl", "proto_library") +load("@rules_java//java:java_binary.bzl", "java_binary") + +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "server_proto", + srcs = ["server.proto"], +) + +java_proto_library( + name = "server_java_proto", + deps = [":server_proto"], +) + +java_grpc_library( + name = "server_java_grpc_proto", + srcs = [ + ":server_proto", + ], + deps = [ + ":server_java_proto", + ], +) + +java_binary( + name = "server", + srcs = [ + "DemoServer.java", + ], + main_class = "com.engflow.notificationqueue.demoserver.DemoServer", + deps = [ + ":server_java_grpc_proto", + ":server_java_proto", + ":server_proto", + "@grpc-java//api", + "@grpc-java//netty", + "@grpc-java//stub", + ], +) + +build_test( + name = "server_test", + targets = [ + ":server", + ], +) diff --git a/java/com/engflow/notificationqueue/demoserver/DemoServer.java b/java/com/engflow/notificationqueue/demoserver/DemoServer.java new file mode 100644 index 00000000..68d84c74 --- /dev/null +++ b/java/com/engflow/notificationqueue/demoserver/DemoServer.java @@ -0,0 +1,93 @@ +/* + * Copyright 2015 The gRPC 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. + */ + +/* + * This file is an EngFlow modified version of the HelloWorldServer by the gRPC authors. + * Check out the original definition here: + * https://github.com/grpc/grpc-java/blob/master/examples/src/main/java/io/grpc/examples/helloworld/HelloWorldServer.java + */ +package com.engflow.notificationqueue.demoserver; + +import io.grpc.Server; +import io.grpc.ServerBuilder; +import io.grpc.stub.StreamObserver; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; + +class DemoServer { + private static final Logger logger = Logger.getLogger(DemoServer.class.getName()); + + private Server server; + + private void start() throws IOException { + /* The port on which the server should run */ + int port = 50051; + server = ServerBuilder.forPort(port).addService(new ForwardingImpl()).build().start(); + logger.info("Server started, listening on " + port); + Runtime.getRuntime() + .addShutdownHook( + new Thread() { + @Override + public void run() { + // Use stderr here since the logger may have been reset by its JVM shutdown hook. + System.err.println("*** shutting down gRPC server since JVM is shutting down"); + try { + DemoServer.this.stop(); + } catch (InterruptedException e) { + e.printStackTrace(System.err); + } + System.err.println("*** server shut down"); + } + }); + } + + private void stop() throws InterruptedException { + if (server != null) { + server.shutdown().awaitTermination(30, TimeUnit.SECONDS); + } + } + + /** Await termination on the main thread since the grpc library uses daemon threads. */ + private void blockUntilShutdown() throws InterruptedException { + if (server != null) { + server.awaitTermination(); + } + } + + /** Main launches the server from the command line. */ + public static void main(String[] args) throws IOException, InterruptedException { + final DemoServer server = new DemoServer(); + server.start(); + server.blockUntilShutdown(); + } + + static class ForwardingImpl extends ForwardingGrpc.ForwardingImplBase { + + @Override + public void forwardStream( + EngFlowRequest req, StreamObserver responseObserver) { + System.out.println("Receiving data... id " + req.getId() + ", payload " + req.getPayload()); + // DO STUFF + EngFlowResponse response = + EngFlowResponse.newBuilder() + .setMessage("Processed request with id " + req.getId() + " in the server.") + .build(); + responseObserver.onNext(response); + responseObserver.onCompleted(); + } + } +} diff --git a/java/com/engflow/notificationqueue/demoserver/LICENSE b/java/com/engflow/notificationqueue/demoserver/LICENSE new file mode 100644 index 00000000..7a4a3ea2 --- /dev/null +++ b/java/com/engflow/notificationqueue/demoserver/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. \ No newline at end of file diff --git a/java/com/engflow/notificationqueue/demoserver/NOTICE.txt b/java/com/engflow/notificationqueue/demoserver/NOTICE.txt new file mode 100644 index 00000000..c5d3ec25 --- /dev/null +++ b/java/com/engflow/notificationqueue/demoserver/NOTICE.txt @@ -0,0 +1,62 @@ +Copyright 2014 The gRPC 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. + +----------------------------------------------------------------------- + +This product contains a modified portion of 'OkHttp', an open source +HTTP & SPDY client for Android and Java applications, which can be obtained +at: + + * LICENSE: + * okhttp/third_party/okhttp/LICENSE (Apache License 2.0) + * HOMEPAGE: + * https://github.com/square/okhttp + * LOCATION_IN_GRPC: + * okhttp/third_party/okhttp + +This product contains a modified portion of 'Envoy', an open source +cloud-native high-performance edge/middle/service proxy, which can be +obtained at: + + * LICENSE: + * xds/third_party/envoy/LICENSE (Apache License 2.0) + * NOTICE: + * xds/third_party/envoy/NOTICE + * HOMEPAGE: + * https://www.envoyproxy.io + * LOCATION_IN_GRPC: + * xds/third_party/envoy + +This product contains a modified portion of 'protoc-gen-validate (PGV)', +an open source protoc plugin to generate polyglot message validators, +which can be obtained at: + + * LICENSE: + * xds/third_party/protoc-gen-validate/LICENSE (Apache License 2.0) + * NOTICE: + * xds/third_party/protoc-gen-validate/NOTICE + * HOMEPAGE: + * https://github.com/envoyproxy/protoc-gen-validate + * LOCATION_IN_GRPC: + * xds/third_party/protoc-gen-validate + +This product contains a modified portion of 'udpa', +an open source universal data plane API, which can be obtained at: + + * LICENSE: + * xds/third_party/udpa/LICENSE (Apache License 2.0) + * HOMEPAGE: + * https://github.com/cncf/udpa + * LOCATION_IN_GRPC: + * xds/third_party/udpa \ No newline at end of file diff --git a/java/com/engflow/notificationqueue/demoserver/server.proto b/java/com/engflow/notificationqueue/demoserver/server.proto new file mode 100644 index 00000000..6abfe610 --- /dev/null +++ b/java/com/engflow/notificationqueue/demoserver/server.proto @@ -0,0 +1,46 @@ +/* + * Copyright 2015 The gRPC 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. + */ + +/* + * This file is an EngFlow modified version of the helloworld.proto by the gRPC authors. + * Check out the original definition here: + * https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/helloworld.proto + */ +syntax = "proto3"; + +package com.engflow.notificationqueue.demoserver; + + +option java_multiple_files = true; +option java_package = "com.engflow.notificationqueue.demoserver"; +option java_outer_classname = "ServerProto"; + + +service Forwarding { + // Simple service for printing invocations + rpc ForwardStream (EngFlowRequest) + returns (EngFlowResponse) {} +} + +message EngFlowRequest { + string id = 1; + + string payload = 2; +} + +message EngFlowResponse { + string message = 1; +} \ No newline at end of file diff --git a/kotlin/BUILD b/kotlin/BUILD new file mode 100644 index 00000000..330bb776 --- /dev/null +++ b/kotlin/BUILD @@ -0,0 +1,15 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_binary") + +kt_jvm_binary( + name = "kotlin", + srcs = ["Main.kt"], + main_class = "example.MainKt", +) + +build_test( + name = "kotlin_test", + targets = [ + ":kotlin", + ], +) diff --git a/kotlin/Main.kt b/kotlin/Main.kt new file mode 100644 index 00000000..35bc1246 --- /dev/null +++ b/kotlin/Main.kt @@ -0,0 +1,5 @@ +package example + +fun main() { + println("Hello, World!") +} diff --git a/maven_install.json b/maven_install.json new file mode 100755 index 00000000..1bfd6d9e --- /dev/null +++ b/maven_install.json @@ -0,0 +1,1316 @@ +{ + "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", + "__INPUT_ARTIFACTS_HASH": { + "com.google.android:annotations": 1910180409, + "com.google.api.grpc:proto-google-common-protos": -2106826238, + "com.google.auth:google-auth-library-credentials": 1149797254, + "com.google.auth:google-auth-library-oauth2-http": -2102758232, + "com.google.auto.value:auto-value": 1146221104, + "com.google.auto.value:auto-value-annotations": -1101276935, + "com.google.code.findbugs:jsr305": 495355163, + "com.google.code.gson:gson": -445462229, + "com.google.errorprone:error_prone_annotations": -2110097316, + "com.google.guava:failureaccess": 1582410452, + "com.google.guava:guava": -1791353471, + "com.google.j2objc:j2objc-annotations": 2003271689, + "com.google.oauth-client:google-oauth-client": -292313029, + "com.google.re2j:re2j": 1525409503, + "com.google.s2a.proto.v2:s2a-proto": 898932763, + "com.google.truth:truth": 1696781452, + "com.squareup.okhttp:okhttp": -1467174407, + "com.squareup.okio:okio": 795722926, + "commons-cli:commons-cli": 613684836, + "io.netty:netty-buffer": -36891658, + "io.netty:netty-codec": -1968637428, + "io.netty:netty-codec-http": 2069139895, + "io.netty:netty-codec-http2": 980426895, + "io.netty:netty-codec-socks": -1802651606, + "io.netty:netty-common": -644663253, + "io.netty:netty-handler": 1812990427, + "io.netty:netty-handler-proxy": -964658153, + "io.netty:netty-resolver": -1317606544, + "io.netty:netty-tcnative-boringssl-static": 2033070843, + "io.netty:netty-tcnative-classes": 2023773715, + "io.netty:netty-transport": 1563151065, + "io.netty:netty-transport-native-epoll": -1215800119, + "io.netty:netty-transport-native-unix-common": -818773192, + "io.opencensus:opencensus-api": 2042364617, + "io.opencensus:opencensus-contrib-grpc-metrics": 317094357, + "io.perfmark:perfmark-api": 1019157794, + "junit:junit": -744267592, + "org.checkerframework:checker-qual": -819031361, + "org.codehaus.mojo:animal-sniffer-annotations": -1634689353, + "repositories": -842695579 + }, + "__RESOLVED_ARTIFACTS_HASH": { + "com.google.android:annotations": 769933135, + "com.google.api.grpc:proto-google-common-protos": 296074077, + "com.google.api:api-common": -237243140, + "com.google.auth:google-auth-library-credentials": 563614471, + "com.google.auth:google-auth-library-oauth2-http": 1869456648, + "com.google.auto.value:auto-value": -1399392164, + "com.google.auto.value:auto-value-annotations": 1092025564, + "com.google.code.findbugs:jsr305": -1038659426, + "com.google.code.gson:gson": 1716313075, + "com.google.errorprone:error_prone_annotations": 1834474429, + "com.google.guava:failureaccess": -56291903, + "com.google.guava:guava": 850540207, + "com.google.guava:listenablefuture": 1588902908, + "com.google.http-client:google-http-client": -1236169829, + "com.google.http-client:google-http-client-gson": -972961030, + "com.google.j2objc:j2objc-annotations": -2074422376, + "com.google.oauth-client:google-oauth-client": -817510924, + "com.google.protobuf:protobuf-java": 956965855, + "com.google.re2j:re2j": -461460138, + "com.google.s2a.proto.v2:s2a-proto": 141624037, + "com.google.truth:truth": 1861944580, + "com.squareup.okhttp:okhttp": -737509755, + "com.squareup.okio:okio": 330712912, + "commons-cli:commons-cli": -1133295517, + "commons-codec:commons-codec": -518888448, + "io.grpc:grpc-api": 89524313, + "io.grpc:grpc-context": 2039382454, + "io.grpc:grpc-protobuf": 2092479527, + "io.grpc:grpc-protobuf-lite": 206283375, + "io.grpc:grpc-stub": -872099402, + "io.netty:netty-buffer": 1339457250, + "io.netty:netty-codec": 2029115835, + "io.netty:netty-codec-http": -2030684265, + "io.netty:netty-codec-http2": 1486258265, + "io.netty:netty-codec-socks": 1080893055, + "io.netty:netty-common": 1496609137, + "io.netty:netty-handler": -2145684634, + "io.netty:netty-handler-proxy": -57289014, + "io.netty:netty-resolver": -225750161, + "io.netty:netty-tcnative-boringssl-static": -1922162184, + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64": -310918884, + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64": 1582797105, + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64": -1315559501, + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64": -95251834, + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64": -1202154110, + "io.netty:netty-tcnative-classes": -1020773440, + "io.netty:netty-transport": -1585026050, + "io.netty:netty-transport-classes-epoll": -173001533, + "io.netty:netty-transport-native-epoll:jar:linux-x86_64": -366639302, + "io.netty:netty-transport-native-unix-common": 1530608691, + "io.opencensus:opencensus-api": -1646032763, + "io.opencensus:opencensus-contrib-grpc-metrics": 1143036588, + "io.opencensus:opencensus-contrib-http-util": -201935122, + "io.perfmark:perfmark-api": -752483303, + "javax.annotation:javax.annotation-api": 193132517, + "junit:junit": 712711302, + "org.apache.httpcomponents:httpclient": -1060837078, + "org.apache.httpcomponents:httpcore": -353060362, + "org.checkerframework:checker-qual": -53559553, + "org.codehaus.mojo:animal-sniffer-annotations": -227071378, + "org.hamcrest:hamcrest-core": 866476646, + "org.jetbrains.kotlin:kotlin-stdlib": 572706190, + "org.jetbrains.kotlin:kotlin-stdlib-common": 11605, + "org.jetbrains:annotations": 116138949, + "org.jspecify:jspecify": -1402924792, + "org.ow2.asm:asm": 1177470613 + }, + "conflict_resolution": { + "com.google.guava:failureaccess:1.0.1": "com.google.guava:failureaccess:1.0.3", + "com.google.j2objc:j2objc-annotations:2.8": "com.google.j2objc:j2objc-annotations:3.1", + "io.netty:netty-handler:4.1.121.Final": "io.netty:netty-handler:4.1.127.Final", + "io.opencensus:opencensus-api:0.31.0": "io.opencensus:opencensus-api:0.31.1" + }, + "artifacts": { + "com.google.android:annotations": { + "shasums": { + "jar": "ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15" + }, + "version": "4.1.1.4" + }, + "com.google.api.grpc:proto-google-common-protos": { + "shasums": { + "jar": "352ffc769f4d17e2d6227b6893ec368f4f07fbb069dd7aaa644b16949369f8b7" + }, + "version": "2.63.1" + }, + "com.google.api:api-common": { + "shasums": { + "jar": "f7073fb389c2aa329981ee65241db7947e8744c988e6c4d975f18bf2748b935a" + }, + "version": "2.53.0" + }, + "com.google.auth:google-auth-library-credentials": { + "shasums": { + "jar": "dd7e39b8f5c366b09f8c2d400b7b63c925499df813b0f0d78044abd72098e159" + }, + "version": "1.40.0" + }, + "com.google.auth:google-auth-library-oauth2-http": { + "shasums": { + "jar": "67fe2c9df9780d8725c1dff61d2ffbbcb93fdcf15e91c44a5e610a4a69afd151" + }, + "version": "1.40.0" + }, + "com.google.auto.value:auto-value": { + "shasums": { + "jar": "aaf8d637bfed3c420436b9facf1b7a88d12c8785374e4202382783005319c2c3" + }, + "version": "1.11.0" + }, + "com.google.auto.value:auto-value-annotations": { + "shasums": { + "jar": "5a055ce4255333b3346e1a8703da5bf8ff049532286fdcd31712d624abe111dd" + }, + "version": "1.11.0" + }, + "com.google.code.findbugs:jsr305": { + "shasums": { + "jar": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7" + }, + "version": "3.0.2" + }, + "com.google.code.gson:gson": { + "shasums": { + "jar": "ebee13d5fb7477cd7f1cc010e0c356df8ca80709715248da97f79e35ccb4fbec" + }, + "version": "2.12.1" + }, + "com.google.errorprone:error_prone_annotations": { + "shasums": { + "jar": "bcf738a525e546c926a233d0a169cf7eafcf703fe81ac9d6994f7244eda29052" + }, + "version": "2.44.0" + }, + "com.google.guava:failureaccess": { + "shasums": { + "jar": "cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb" + }, + "version": "1.0.3" + }, + "com.google.guava:guava": { + "shasums": { + "jar": "e380b435404653753e894be80ee6fdd5252d55b07f663d8a004b4e5898ecfaa0" + }, + "version": "33.5.0-android" + }, + "com.google.guava:listenablefuture": { + "shasums": { + "jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" + }, + "version": "9999.0-empty-to-avoid-conflict-with-guava" + }, + "com.google.http-client:google-http-client": { + "shasums": { + "jar": "97a0666340956dbc96893bc8cf843a5b57367543f218feddad3ff433fbfdaa68" + }, + "version": "2.0.2" + }, + "com.google.http-client:google-http-client-gson": { + "shasums": { + "jar": "37c8fd5c7869bc4abf3b3219c7e79cb566afa745559772e969c21595199600cd" + }, + "version": "2.0.2" + }, + "com.google.j2objc:j2objc-annotations": { + "shasums": { + "jar": "84d3a150518485f8140ea99b8a985656749629f6433c92b80c75b36aba3b099b" + }, + "version": "3.1" + }, + "com.google.oauth-client:google-oauth-client": { + "shasums": { + "jar": "27fc61ee2d526e33d31350b5ea383091c0879345e261f9b2e6fcc97a20c86f88" + }, + "version": "1.39.0" + }, + "com.google.protobuf:protobuf-java": { + "shasums": { + "jar": "72bdb32eb38cafb7dcd288262c29a34d57cba2e19101af9685155ba8c0a56008" + }, + "version": "3.25.8" + }, + "com.google.re2j:re2j": { + "shasums": { + "jar": "7b52c72156dd7f98b3237a5b35c1d34fba381b21048c89208913ad80a45dfbd7" + }, + "version": "1.8" + }, + "com.google.s2a.proto.v2:s2a-proto": { + "shasums": { + "jar": "3205a05a82003067fbbd28ec0381d4c75258c25eb772d37be62e8b12d0402936" + }, + "version": "0.1.3" + }, + "com.google.truth:truth": { + "shasums": { + "jar": "a6409e90fdd6b31f239b0c02065c43b53e1b09c72f2e08c3a86d04fe5910cf4b" + }, + "version": "1.4.5" + }, + "com.squareup.okhttp:okhttp": { + "shasums": { + "jar": "88ac9fd1bb51f82bcc664cc1eb9c225c90dc4389d660231b4cc737bebfe7d0aa" + }, + "version": "2.7.5" + }, + "com.squareup.okio:okio": { + "shasums": { + "jar": "a27f091d34aa452e37227e2cfa85809f29012a8ef2501a9b5a125a978e4fcbc1" + }, + "version": "2.10.0" + }, + "commons-cli:commons-cli": { + "shasums": { + "jar": "d3d530d0f28fd0fbbffe2b0b338f70e8cb96f1605579e2e3abd4db29cac24e69" + }, + "version": "1.9.0" + }, + "commons-codec:commons-codec": { + "shasums": { + "jar": "e599d5318e97aa48f42136a2927e6dfa4e8881dff0e6c8e3109ddbbff51d7b7d" + }, + "version": "1.11" + }, + "io.grpc:grpc-api": { + "shasums": { + "jar": "45faf2ac1bf2791e8fdabce53684a86b62c99b84cba26fb13a5ba3f4abf80d6c" + }, + "version": "1.70.0" + }, + "io.grpc:grpc-context": { + "shasums": { + "jar": "eb2824831c0ac03e741efda86b141aa863a481ebc4aaf5a5c1f13a481dbb40ff" + }, + "version": "1.70.0" + }, + "io.grpc:grpc-protobuf": { + "shasums": { + "jar": "9b98039ed826604c46d6ac8f8a182d413d348ec6abe26467736b05aa92e7e1d3" + }, + "version": "1.70.0" + }, + "io.grpc:grpc-protobuf-lite": { + "shasums": { + "jar": "e7cc2ca8981672851cbebf83a24bfb93c1b2b058e75c1a817a757b914f33403d" + }, + "version": "1.70.0" + }, + "io.grpc:grpc-stub": { + "shasums": { + "jar": "5adaa1ec1f744b67ae14a8dbc39c9589c010fad0fd557b0a02966202e4d23a18" + }, + "version": "1.70.0" + }, + "io.netty:netty-buffer": { + "shasums": { + "jar": "4a0a17dc5a58d910c56545be6912b9923cfe902522dc1df268e774bc22443eb6" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-codec": { + "shasums": { + "jar": "187d21cee1a114f43b87be235f66c83828bdd0a3e0c1cdfebedaa37748e6e470" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-codec-http": { + "shasums": { + "jar": "2408776c87c1808b5522298c25e8290427123763f4addfda02dff6a24a538f61" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-codec-http2": { + "shasums": { + "jar": "0eb1befa55f785b47729d58d4fce72abea73b7f48fc1c434d71953e6a558ffaa" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-codec-socks": { + "shasums": { + "jar": "d3d251f9239951a845f22e39191f95471fb2eb7951b9878ea4555ccac99529fb" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-common": { + "shasums": { + "jar": "a6732bb70dc15ed96aa33ecca82c0d7b20f8ff41adf04f74f168f626adf359e8" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-handler": { + "shasums": { + "jar": "88b6892bc1321d32409392e5b9f94e59d8e800678c029c71e7c0d76daf6050d0" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-handler-proxy": { + "shasums": { + "jar": "2c0c8046e5d737e08f40a7c2907526648860d0434e125bd51de3c2cf390453fb" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-resolver": { + "shasums": { + "jar": "a57ee62deb54ed99690db2696039f0f768a65c974677946ed48b2a2d8510ded3" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-tcnative-boringssl-static": { + "shasums": { + "jar": "ec3b14ceff74c5d7e24a378e64074744cc5e7035c49cf6ca0a4e23dff9713d1f", + "linux-aarch_64": "11dfee82cfcb5c4f596271fe1d56a70fe77b4034e54162d0bd211623b540857f", + "linux-x86_64": "39ac6b1eb4ffc18d5fe9412cc6253a8954bafc8e3ca10109bc370490f73a3673", + "osx-aarch_64": "eef3fc7cdc5e2dc8c5cb50bae11443052bf1ee2f6e8b64378565746d1529f05e", + "osx-x86_64": "e3beaa3ebdb136569528c59aa826d771efadc0ac9db484c6c0e457fa5efd0f07", + "windows-x86_64": "5458b4b502763d49cd2e16c434312687178afac9c164cabf75c4a8bcecf7ac50" + }, + "version": "2.0.74.Final" + }, + "io.netty:netty-tcnative-classes": { + "shasums": { + "jar": "194874cf723794dd409fd1e728cd91ffbcff0584d73b4d8a1ad0d69d04acf9b3" + }, + "version": "2.0.74.Final" + }, + "io.netty:netty-transport": { + "shasums": { + "jar": "0d1ad82bc658f9919ca750cebe2571d4b0ae4514ec781964091f405343760e92" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-transport-classes-epoll": { + "shasums": { + "jar": "a39452eb911cb60068da6cdfd00e513b0a06e195b064fc44bd6fbfbc43c9527e" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-transport-native-epoll": { + "shasums": { + "linux-x86_64": "3d03f27eea1cd23357a56a96e1eeedfeb3d74fa0ba4d5c36a862bd035056275b" + }, + "version": "4.1.127.Final" + }, + "io.netty:netty-transport-native-unix-common": { + "shasums": { + "jar": "0e3a45e3ce1fe034ca8b32c1579afa5f06729ca6427b7b0610528c4ef37c6e50" + }, + "version": "4.1.127.Final" + }, + "io.opencensus:opencensus-api": { + "shasums": { + "jar": "f1474d47f4b6b001558ad27b952e35eda5cc7146788877fc52938c6eba24b382" + }, + "version": "0.31.1" + }, + "io.opencensus:opencensus-contrib-grpc-metrics": { + "shasums": { + "jar": "b28fc72490edd49c4c40a3c216b709200833fb361f7f602f1c7c9a527f7b7f63" + }, + "version": "0.31.0" + }, + "io.opencensus:opencensus-contrib-http-util": { + "shasums": { + "jar": "3ea995b55a4068be22989b70cc29a4d788c2d328d1d50613a7a9afd13fdd2d0a" + }, + "version": "0.31.1" + }, + "io.perfmark:perfmark-api": { + "shasums": { + "jar": "c7b478503ec524e55df19b424d46d27c8a68aeb801664fadd4f069b71f52d0f6" + }, + "version": "0.27.0" + }, + "javax.annotation:javax.annotation-api": { + "shasums": { + "jar": "e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b" + }, + "version": "1.3.2" + }, + "junit:junit": { + "shasums": { + "jar": "8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3" + }, + "version": "4.13.2" + }, + "org.apache.httpcomponents:httpclient": { + "shasums": { + "jar": "c8bc7e1c51a6d4ce72f40d2ebbabf1c4b68bfe76e732104b04381b493478e9d6" + }, + "version": "4.5.14" + }, + "org.apache.httpcomponents:httpcore": { + "shasums": { + "jar": "6c9b3dd142a09dc468e23ad39aad6f75a0f2b85125104469f026e52a474e464f" + }, + "version": "4.4.16" + }, + "org.checkerframework:checker-qual": { + "shasums": { + "jar": "508c83c62c344f6f7ee28f47b88a8797d6116d043bfd1ca0576c828dd1df2880" + }, + "version": "3.49.5" + }, + "org.codehaus.mojo:animal-sniffer-annotations": { + "shasums": { + "jar": "342f4d815eae69bb980620d0a622862709be37d38f47577675b42c739a962da9" + }, + "version": "1.26" + }, + "org.hamcrest:hamcrest-core": { + "shasums": { + "jar": "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9" + }, + "version": "1.3" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "shasums": { + "jar": "b8ab1da5cdc89cb084d41e1f28f20a42bd431538642a5741c52bbfae3fa3e656" + }, + "version": "1.4.20" + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "shasums": { + "jar": "a7112c9b3cefee418286c9c9372f7af992bd1e6e030691d52f60cb36dbec8320" + }, + "version": "1.4.20" + }, + "org.jetbrains:annotations": { + "shasums": { + "jar": "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478" + }, + "version": "13.0" + }, + "org.jspecify:jspecify": { + "shasums": { + "jar": "1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" + }, + "version": "1.0.0" + }, + "org.ow2.asm:asm": { + "shasums": { + "jar": "876eab6a83daecad5ca67eb9fcabb063c97b5aeb8cf1fca7a989ecde17522051" + }, + "version": "9.8" + } + }, + "dependencies": { + "com.google.api.grpc:proto-google-common-protos": [ + "com.google.protobuf:protobuf-java" + ], + "com.google.api:api-common": [ + "com.google.auto.value:auto-value-annotations", + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotations", + "com.google.j2objc:j2objc-annotations", + "javax.annotation:javax.annotation-api" + ], + "com.google.auth:google-auth-library-oauth2-http": [ + "com.google.api:api-common", + "com.google.auth:google-auth-library-credentials", + "com.google.auto.value:auto-value-annotations", + "com.google.code.findbugs:jsr305", + "com.google.code.gson:gson", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-gson" + ], + "com.google.code.gson:gson": [ + "com.google.errorprone:error_prone_annotations" + ], + "com.google.guava:guava": [ + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:listenablefuture", + "com.google.j2objc:j2objc-annotations", + "org.jspecify:jspecify" + ], + "com.google.http-client:google-http-client": [ + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "com.google.j2objc:j2objc-annotations", + "io.grpc:grpc-context", + "io.opencensus:opencensus-api", + "io.opencensus:opencensus-contrib-http-util", + "org.apache.httpcomponents:httpclient", + "org.apache.httpcomponents:httpcore" + ], + "com.google.http-client:google-http-client-gson": [ + "com.google.code.gson:gson", + "com.google.http-client:google-http-client" + ], + "com.google.oauth-client:google-oauth-client": [ + "com.google.guava:guava", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-gson" + ], + "com.google.s2a.proto.v2:s2a-proto": [ + "io.grpc:grpc-protobuf", + "io.grpc:grpc-stub" + ], + "com.google.truth:truth": [ + "com.google.auto.value:auto-value-annotations", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "junit:junit", + "org.jspecify:jspecify", + "org.ow2.asm:asm" + ], + "com.squareup.okhttp:okhttp": [ + "com.squareup.okio:okio" + ], + "com.squareup.okio:okio": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-common" + ], + "io.grpc:grpc-api": [ + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava" + ], + "io.grpc:grpc-context": [ + "io.grpc:grpc-api" + ], + "io.grpc:grpc-protobuf": [ + "com.google.api.grpc:proto-google-common-protos", + "com.google.code.findbugs:jsr305", + "com.google.guava:guava", + "com.google.protobuf:protobuf-java", + "io.grpc:grpc-api", + "io.grpc:grpc-protobuf-lite" + ], + "io.grpc:grpc-protobuf-lite": [ + "com.google.code.findbugs:jsr305", + "com.google.guava:guava", + "io.grpc:grpc-api" + ], + "io.grpc:grpc-stub": [ + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "io.grpc:grpc-api", + "org.codehaus.mojo:animal-sniffer-annotations" + ], + "io.netty:netty-buffer": [ + "io.netty:netty-common" + ], + "io.netty:netty-codec": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-codec-http": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-common", + "io.netty:netty-handler", + "io.netty:netty-transport" + ], + "io.netty:netty-codec-http2": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-http", + "io.netty:netty-common", + "io.netty:netty-handler", + "io.netty:netty-transport" + ], + "io.netty:netty-codec-socks": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-handler": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-common", + "io.netty:netty-resolver", + "io.netty:netty-transport", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-handler-proxy": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-http", + "io.netty:netty-codec-socks", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-resolver": [ + "io.netty:netty-common" + ], + "io.netty:netty-tcnative-boringssl-static": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-transport": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-resolver" + ], + "io.netty:netty-transport-classes-epoll": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-native-epoll:jar:linux-x86_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-native-unix-common": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.opencensus:opencensus-api": [ + "io.grpc:grpc-context" + ], + "io.opencensus:opencensus-contrib-grpc-metrics": [ + "com.google.guava:guava", + "io.opencensus:opencensus-api" + ], + "io.opencensus:opencensus-contrib-http-util": [ + "com.google.guava:guava", + "io.opencensus:opencensus-api" + ], + "junit:junit": [ + "org.hamcrest:hamcrest-core" + ], + "org.apache.httpcomponents:httpclient": [ + "commons-codec:commons-codec", + "org.apache.httpcomponents:httpcore" + ], + "org.jetbrains.kotlin:kotlin-stdlib": [ + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains:annotations" + ] + }, + "packages": { + "com.google.android:annotations": [ + "android.annotation" + ], + "com.google.api.grpc:proto-google-common-protos": [ + "com.google.api", + "com.google.apps.card.v1", + "com.google.cloud", + "com.google.cloud.audit", + "com.google.cloud.location", + "com.google.geo.type", + "com.google.logging.type", + "com.google.longrunning", + "com.google.rpc", + "com.google.rpc.context", + "com.google.shopping.type", + "com.google.type" + ], + "com.google.api:api-common": [ + "com.google.api.core", + "com.google.api.pathtemplate", + "com.google.api.resourcenames" + ], + "com.google.auth:google-auth-library-credentials": [ + "com.google.auth" + ], + "com.google.auth:google-auth-library-oauth2-http": [ + "com.google.auth.http", + "com.google.auth.mtls", + "com.google.auth.oauth2" + ], + "com.google.auto.value:auto-value": [ + "autovalue.shaded.com.google.auto.common", + "autovalue.shaded.com.google.auto.service", + "autovalue.shaded.com.google.common.annotations", + "autovalue.shaded.com.google.common.base", + "autovalue.shaded.com.google.common.cache", + "autovalue.shaded.com.google.common.collect", + "autovalue.shaded.com.google.common.escape", + "autovalue.shaded.com.google.common.eventbus", + "autovalue.shaded.com.google.common.graph", + "autovalue.shaded.com.google.common.hash", + "autovalue.shaded.com.google.common.html", + "autovalue.shaded.com.google.common.io", + "autovalue.shaded.com.google.common.math", + "autovalue.shaded.com.google.common.net", + "autovalue.shaded.com.google.common.primitives", + "autovalue.shaded.com.google.common.reflect", + "autovalue.shaded.com.google.common.util.concurrent", + "autovalue.shaded.com.google.common.xml", + "autovalue.shaded.com.google.errorprone.annotations", + "autovalue.shaded.com.google.errorprone.annotations.concurrent", + "autovalue.shaded.com.google.escapevelocity", + "autovalue.shaded.com.google.j2objc.annotations", + "autovalue.shaded.com.squareup.javapoet", + "autovalue.shaded.net.ltgt.gradle.incap", + "autovalue.shaded.org.checkerframework.checker.nullness.qual", + "autovalue.shaded.org.checkerframework.framework.qual", + "autovalue.shaded.org.objectweb.asm", + "com.google.auto.value.extension", + "com.google.auto.value.extension.memoized.processor", + "com.google.auto.value.extension.serializable.processor", + "com.google.auto.value.extension.serializable.serializer", + "com.google.auto.value.extension.serializable.serializer.impl", + "com.google.auto.value.extension.serializable.serializer.interfaces", + "com.google.auto.value.extension.serializable.serializer.runtime", + "com.google.auto.value.extension.toprettystring.processor", + "com.google.auto.value.processor" + ], + "com.google.auto.value:auto-value-annotations": [ + "com.google.auto.value", + "com.google.auto.value.extension.memoized", + "com.google.auto.value.extension.serializable", + "com.google.auto.value.extension.toprettystring" + ], + "com.google.code.findbugs:jsr305": [ + "javax.annotation", + "javax.annotation.concurrent", + "javax.annotation.meta" + ], + "com.google.code.gson:gson": [ + "com.google.gson", + "com.google.gson.annotations", + "com.google.gson.internal", + "com.google.gson.internal.bind", + "com.google.gson.internal.bind.util", + "com.google.gson.internal.reflect", + "com.google.gson.internal.sql", + "com.google.gson.reflect", + "com.google.gson.stream" + ], + "com.google.errorprone:error_prone_annotations": [ + "com.google.errorprone.annotations", + "com.google.errorprone.annotations.concurrent" + ], + "com.google.guava:failureaccess": [ + "com.google.common.util.concurrent.internal" + ], + "com.google.guava:guava": [ + "com.google.common.annotations", + "com.google.common.base", + "com.google.common.base.internal", + "com.google.common.cache", + "com.google.common.collect", + "com.google.common.escape", + "com.google.common.eventbus", + "com.google.common.graph", + "com.google.common.hash", + "com.google.common.html", + "com.google.common.io", + "com.google.common.math", + "com.google.common.net", + "com.google.common.primitives", + "com.google.common.reflect", + "com.google.common.util.concurrent", + "com.google.common.xml", + "com.google.thirdparty.publicsuffix" + ], + "com.google.http-client:google-http-client": [ + "com.google.api.client.http", + "com.google.api.client.http.apache", + "com.google.api.client.http.javanet", + "com.google.api.client.http.json", + "com.google.api.client.json", + "com.google.api.client.json.rpc2", + "com.google.api.client.json.webtoken", + "com.google.api.client.testing.http", + "com.google.api.client.testing.http.apache", + "com.google.api.client.testing.http.javanet", + "com.google.api.client.testing.json", + "com.google.api.client.testing.json.webtoken", + "com.google.api.client.testing.util", + "com.google.api.client.util", + "com.google.api.client.util.escape", + "com.google.api.client.util.store" + ], + "com.google.http-client:google-http-client-gson": [ + "com.google.api.client.json.gson" + ], + "com.google.j2objc:j2objc-annotations": [ + "com.google.j2objc.annotations" + ], + "com.google.oauth-client:google-oauth-client": [ + "com.google.api.client.auth.oauth", + "com.google.api.client.auth.oauth2", + "com.google.api.client.auth.openidconnect" + ], + "com.google.protobuf:protobuf-java": [ + "com.google.protobuf", + "com.google.protobuf.compiler" + ], + "com.google.re2j:re2j": [ + "com.google.re2j" + ], + "com.google.s2a.proto.v2:s2a-proto": [ + "com.google.s2a.proto.v2" + ], + "com.google.truth:truth": [ + "com.google.common.truth" + ], + "com.squareup.okhttp:okhttp": [ + "com.squareup.okhttp", + "com.squareup.okhttp.internal", + "com.squareup.okhttp.internal.framed", + "com.squareup.okhttp.internal.http", + "com.squareup.okhttp.internal.io", + "com.squareup.okhttp.internal.tls" + ], + "com.squareup.okio:okio": [ + "okio", + "okio.internal" + ], + "commons-cli:commons-cli": [ + "org.apache.commons.cli" + ], + "commons-codec:commons-codec": [ + "org.apache.commons.codec", + "org.apache.commons.codec.binary", + "org.apache.commons.codec.cli", + "org.apache.commons.codec.digest", + "org.apache.commons.codec.language", + "org.apache.commons.codec.language.bm", + "org.apache.commons.codec.net" + ], + "io.grpc:grpc-api": [ + "io.grpc" + ], + "io.grpc:grpc-protobuf": [ + "io.grpc.protobuf" + ], + "io.grpc:grpc-protobuf-lite": [ + "io.grpc.protobuf.lite" + ], + "io.grpc:grpc-stub": [ + "io.grpc.stub", + "io.grpc.stub.annotations" + ], + "io.netty:netty-buffer": [ + "io.netty.buffer", + "io.netty.buffer.search" + ], + "io.netty:netty-codec": [ + "io.netty.handler.codec", + "io.netty.handler.codec.base64", + "io.netty.handler.codec.bytes", + "io.netty.handler.codec.compression", + "io.netty.handler.codec.json", + "io.netty.handler.codec.marshalling", + "io.netty.handler.codec.protobuf", + "io.netty.handler.codec.serialization", + "io.netty.handler.codec.string", + "io.netty.handler.codec.xml" + ], + "io.netty:netty-codec-http": [ + "io.netty.handler.codec.http", + "io.netty.handler.codec.http.cookie", + "io.netty.handler.codec.http.cors", + "io.netty.handler.codec.http.multipart", + "io.netty.handler.codec.http.websocketx", + "io.netty.handler.codec.http.websocketx.extensions", + "io.netty.handler.codec.http.websocketx.extensions.compression", + "io.netty.handler.codec.rtsp", + "io.netty.handler.codec.spdy" + ], + "io.netty:netty-codec-http2": [ + "io.netty.handler.codec.http2" + ], + "io.netty:netty-codec-socks": [ + "io.netty.handler.codec.socks", + "io.netty.handler.codec.socksx", + "io.netty.handler.codec.socksx.v4", + "io.netty.handler.codec.socksx.v5" + ], + "io.netty:netty-common": [ + "io.netty.util", + "io.netty.util.collection", + "io.netty.util.concurrent", + "io.netty.util.internal", + "io.netty.util.internal.logging", + "io.netty.util.internal.shaded.org.jctools.counters", + "io.netty.util.internal.shaded.org.jctools.maps", + "io.netty.util.internal.shaded.org.jctools.queues", + "io.netty.util.internal.shaded.org.jctools.queues.atomic", + "io.netty.util.internal.shaded.org.jctools.queues.atomic.unpadded", + "io.netty.util.internal.shaded.org.jctools.queues.unpadded", + "io.netty.util.internal.shaded.org.jctools.util", + "io.netty.util.internal.svm" + ], + "io.netty:netty-handler": [ + "io.netty.handler.address", + "io.netty.handler.flow", + "io.netty.handler.flush", + "io.netty.handler.ipfilter", + "io.netty.handler.logging", + "io.netty.handler.pcap", + "io.netty.handler.ssl", + "io.netty.handler.ssl.ocsp", + "io.netty.handler.ssl.util", + "io.netty.handler.stream", + "io.netty.handler.timeout", + "io.netty.handler.traffic" + ], + "io.netty:netty-handler-proxy": [ + "io.netty.handler.proxy" + ], + "io.netty:netty-resolver": [ + "io.netty.resolver" + ], + "io.netty:netty-tcnative-classes": [ + "io.netty.internal.tcnative" + ], + "io.netty:netty-transport": [ + "io.netty.bootstrap", + "io.netty.channel", + "io.netty.channel.embedded", + "io.netty.channel.group", + "io.netty.channel.internal", + "io.netty.channel.local", + "io.netty.channel.nio", + "io.netty.channel.oio", + "io.netty.channel.pool", + "io.netty.channel.socket", + "io.netty.channel.socket.nio", + "io.netty.channel.socket.oio" + ], + "io.netty:netty-transport-classes-epoll": [ + "io.netty.channel.epoll" + ], + "io.netty:netty-transport-native-unix-common": [ + "io.netty.channel.unix" + ], + "io.opencensus:opencensus-api": [ + "io.opencensus.common", + "io.opencensus.internal", + "io.opencensus.metrics", + "io.opencensus.metrics.data", + "io.opencensus.metrics.export", + "io.opencensus.resource", + "io.opencensus.stats", + "io.opencensus.tags", + "io.opencensus.tags.propagation", + "io.opencensus.tags.unsafe", + "io.opencensus.trace", + "io.opencensus.trace.config", + "io.opencensus.trace.export", + "io.opencensus.trace.internal", + "io.opencensus.trace.propagation", + "io.opencensus.trace.samplers", + "io.opencensus.trace.unsafe" + ], + "io.opencensus:opencensus-contrib-grpc-metrics": [ + "io.opencensus.contrib.grpc.metrics" + ], + "io.opencensus:opencensus-contrib-http-util": [ + "io.opencensus.contrib.http", + "io.opencensus.contrib.http.util" + ], + "io.perfmark:perfmark-api": [ + "io.perfmark" + ], + "javax.annotation:javax.annotation-api": [ + "javax.annotation", + "javax.annotation.security", + "javax.annotation.sql" + ], + "junit:junit": [ + "junit.extensions", + "junit.framework", + "junit.runner", + "junit.textui", + "org.junit", + "org.junit.experimental", + "org.junit.experimental.categories", + "org.junit.experimental.max", + "org.junit.experimental.results", + "org.junit.experimental.runners", + "org.junit.experimental.theories", + "org.junit.experimental.theories.internal", + "org.junit.experimental.theories.suppliers", + "org.junit.function", + "org.junit.internal", + "org.junit.internal.builders", + "org.junit.internal.management", + "org.junit.internal.matchers", + "org.junit.internal.requests", + "org.junit.internal.runners", + "org.junit.internal.runners.model", + "org.junit.internal.runners.rules", + "org.junit.internal.runners.statements", + "org.junit.matchers", + "org.junit.rules", + "org.junit.runner", + "org.junit.runner.manipulation", + "org.junit.runner.notification", + "org.junit.runners", + "org.junit.runners.model", + "org.junit.runners.parameterized", + "org.junit.validator" + ], + "org.apache.httpcomponents:httpclient": [ + "org.apache.http.auth", + "org.apache.http.auth.params", + "org.apache.http.client", + "org.apache.http.client.config", + "org.apache.http.client.entity", + "org.apache.http.client.methods", + "org.apache.http.client.params", + "org.apache.http.client.protocol", + "org.apache.http.client.utils", + "org.apache.http.conn", + "org.apache.http.conn.params", + "org.apache.http.conn.routing", + "org.apache.http.conn.scheme", + "org.apache.http.conn.socket", + "org.apache.http.conn.ssl", + "org.apache.http.conn.util", + "org.apache.http.cookie", + "org.apache.http.cookie.params", + "org.apache.http.impl.auth", + "org.apache.http.impl.client", + "org.apache.http.impl.conn", + "org.apache.http.impl.conn.tsccm", + "org.apache.http.impl.cookie", + "org.apache.http.impl.execchain" + ], + "org.apache.httpcomponents:httpcore": [ + "org.apache.http", + "org.apache.http.annotation", + "org.apache.http.concurrent", + "org.apache.http.config", + "org.apache.http.entity", + "org.apache.http.impl", + "org.apache.http.impl.bootstrap", + "org.apache.http.impl.entity", + "org.apache.http.impl.io", + "org.apache.http.impl.pool", + "org.apache.http.io", + "org.apache.http.message", + "org.apache.http.params", + "org.apache.http.pool", + "org.apache.http.protocol", + "org.apache.http.ssl", + "org.apache.http.util" + ], + "org.checkerframework:checker-qual": [ + "org.checkerframework.checker.builder.qual", + "org.checkerframework.checker.calledmethods.qual", + "org.checkerframework.checker.compilermsgs.qual", + "org.checkerframework.checker.fenum.qual", + "org.checkerframework.checker.formatter.qual", + "org.checkerframework.checker.guieffect.qual", + "org.checkerframework.checker.i18n.qual", + "org.checkerframework.checker.i18nformatter.qual", + "org.checkerframework.checker.index.qual", + "org.checkerframework.checker.initialization.qual", + "org.checkerframework.checker.interning.qual", + "org.checkerframework.checker.lock.qual", + "org.checkerframework.checker.mustcall.qual", + "org.checkerframework.checker.nonempty.qual", + "org.checkerframework.checker.nullness.qual", + "org.checkerframework.checker.optional.qual", + "org.checkerframework.checker.propkey.qual", + "org.checkerframework.checker.regex.qual", + "org.checkerframework.checker.signature.qual", + "org.checkerframework.checker.signedness.qual", + "org.checkerframework.checker.sqlquotes.qual", + "org.checkerframework.checker.tainting.qual", + "org.checkerframework.checker.units.qual", + "org.checkerframework.common.aliasing.qual", + "org.checkerframework.common.initializedfields.qual", + "org.checkerframework.common.reflection.qual", + "org.checkerframework.common.returnsreceiver.qual", + "org.checkerframework.common.subtyping.qual", + "org.checkerframework.common.util.count.report.qual", + "org.checkerframework.common.value.qual", + "org.checkerframework.dataflow.qual", + "org.checkerframework.framework.qual" + ], + "org.codehaus.mojo:animal-sniffer-annotations": [ + "org.codehaus.mojo.animal_sniffer" + ], + "org.hamcrest:hamcrest-core": [ + "org.hamcrest", + "org.hamcrest.core", + "org.hamcrest.internal" + ], + "org.jetbrains.kotlin:kotlin-stdlib": [ + "kotlin", + "kotlin.annotation", + "kotlin.collections", + "kotlin.collections.builders", + "kotlin.collections.unsigned", + "kotlin.comparisons", + "kotlin.concurrent", + "kotlin.contracts", + "kotlin.coroutines", + "kotlin.coroutines.cancellation", + "kotlin.coroutines.intrinsics", + "kotlin.coroutines.jvm.internal", + "kotlin.experimental", + "kotlin.internal", + "kotlin.io", + "kotlin.js", + "kotlin.jvm", + "kotlin.jvm.functions", + "kotlin.jvm.internal", + "kotlin.jvm.internal.markers", + "kotlin.jvm.internal.unsafe", + "kotlin.math", + "kotlin.properties", + "kotlin.random", + "kotlin.ranges", + "kotlin.reflect", + "kotlin.sequences", + "kotlin.system", + "kotlin.text", + "kotlin.time" + ], + "org.jetbrains:annotations": [ + "org.intellij.lang.annotations", + "org.jetbrains.annotations" + ], + "org.jspecify:jspecify": [ + "org.jspecify.annotations" + ], + "org.ow2.asm:asm": [ + "org.objectweb.asm", + "org.objectweb.asm.signature" + ] + }, + "repositories": { + "https://repo.maven.apache.org/maven2/": [ + "com.google.android:annotations", + "com.google.api.grpc:proto-google-common-protos", + "com.google.api:api-common", + "com.google.auth:google-auth-library-credentials", + "com.google.auth:google-auth-library-oauth2-http", + "com.google.auto.value:auto-value", + "com.google.auto.value:auto-value-annotations", + "com.google.code.findbugs:jsr305", + "com.google.code.gson:gson", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:guava", + "com.google.guava:listenablefuture", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-gson", + "com.google.j2objc:j2objc-annotations", + "com.google.oauth-client:google-oauth-client", + "com.google.protobuf:protobuf-java", + "com.google.re2j:re2j", + "com.google.s2a.proto.v2:s2a-proto", + "com.google.truth:truth", + "com.squareup.okhttp:okhttp", + "com.squareup.okio:okio", + "commons-cli:commons-cli", + "commons-codec:commons-codec", + "io.grpc:grpc-api", + "io.grpc:grpc-context", + "io.grpc:grpc-protobuf", + "io.grpc:grpc-protobuf-lite", + "io.grpc:grpc-stub", + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-common", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-tcnative-boringssl-static", + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll:jar:linux-x86_64", + "io.netty:netty-transport-native-unix-common", + "io.opencensus:opencensus-api", + "io.opencensus:opencensus-contrib-grpc-metrics", + "io.opencensus:opencensus-contrib-http-util", + "io.perfmark:perfmark-api", + "javax.annotation:javax.annotation-api", + "junit:junit", + "org.apache.httpcomponents:httpclient", + "org.apache.httpcomponents:httpcore", + "org.checkerframework:checker-qual", + "org.codehaus.mojo:animal-sniffer-annotations", + "org.hamcrest:hamcrest-core", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains:annotations", + "org.jspecify:jspecify", + "org.ow2.asm:asm" + ] + }, + "services": { + "com.google.auto.value:auto-value": { + "com.google.auto.value.extension.AutoValueExtension": [ + "com.google.auto.value.extension.memoized.processor.MemoizeExtension", + "com.google.auto.value.extension.serializable.processor.SerializableAutoValueExtension", + "com.google.auto.value.extension.toprettystring.processor.ToPrettyStringExtension" + ], + "com.google.auto.value.extension.serializable.serializer.interfaces.SerializerExtension": [ + "com.google.auto.value.extension.serializable.serializer.impl.ImmutableListSerializerExtension", + "com.google.auto.value.extension.serializable.serializer.impl.ImmutableMapSerializerExtension", + "com.google.auto.value.extension.serializable.serializer.impl.OptionalSerializerExtension" + ], + "javax.annotation.processing.Processor": [ + "com.google.auto.value.extension.memoized.processor.MemoizedValidator", + "com.google.auto.value.extension.toprettystring.processor.ToPrettyStringValidator", + "com.google.auto.value.processor.AutoAnnotationProcessor", + "com.google.auto.value.processor.AutoBuilderProcessor", + "com.google.auto.value.processor.AutoOneOfProcessor", + "com.google.auto.value.processor.AutoValueBuilderProcessor", + "com.google.auto.value.processor.AutoValueProcessor" + ] + }, + "io.netty:netty-common": { + "reactor.blockhound.integration.BlockHoundIntegration": [ + "io.netty.util.internal.Hidden$NettyBlockHoundIntegration" + ] + } + }, + "version": "3" +} diff --git a/perl/BUILD b/perl/BUILD new file mode 100644 index 00000000..8c0f6c76 --- /dev/null +++ b/perl/BUILD @@ -0,0 +1,14 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_perl//perl:perl.bzl", "perl_binary") + +perl_binary( + name = "perl", + srcs = ["hello_world.pl"], +) + +build_test( + name = "perl_test", + targets = [ + ":perl", + ], +) diff --git a/perl/hello_world.pl b/perl/hello_world.pl new file mode 100644 index 00000000..0365438c --- /dev/null +++ b/perl/hello_world.pl @@ -0,0 +1,3 @@ +#!/usr/bin/perl +use warnings; +print("Hello, World!\n"); \ No newline at end of file diff --git a/platform/linux_x64/BUILD b/platform/linux_x64/BUILD new file mode 100644 index 00000000..c2e64e2f --- /dev/null +++ b/platform/linux_x64/BUILD @@ -0,0 +1,146 @@ +load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite") +load(":cc_toolchain_config.bzl", "cc_toolchain_config") + +package(default_visibility = ["//visibility:public"]) + +platform( + name = "linux_x64", + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + "@bazel_tools//tools/cpp:clang", + ], + exec_properties = { + "container-image": "docker://gcr.io/bazel-public/ubuntu2004-java11@sha256:69a78f121230c6d5cbfe2f4af8ce65481aa3f2acaaaf8e899df335f1ac1b35b5", + "OSFamily": "Linux", + }, +) + +toolchain( + name = "cc-toolchain", + exec_compatible_with = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + ], + target_compatible_with = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + ], + toolchain = ":cc-compiler-k8", + toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", +) + +cc_toolchain_suite( + name = "toolchain", + target_compatible_with = [ + "@platforms//os:linux", + ], + toolchains = { + "k8|clang": ":cc-compiler-k8", + "k8": ":cc-compiler-k8", + }, +) + +cc_toolchain( + name = "cc-compiler-k8", + all_files = ":compiler_deps", + ar_files = ":compiler_deps", + as_files = ":compiler_deps", + compiler_files = ":compiler_deps", + dwp_files = ":empty", + linker_files = ":compiler_deps", + module_map = ":module.modulemap", + objcopy_files = ":empty", + strip_files = ":empty", + supports_param_files = 1, + toolchain_config = ":linux_gnu_x86", + toolchain_identifier = "linux_gnu_x86", +) + +cc_toolchain_config( + name = "linux_gnu_x86", + abi_libc_version = "glibc_2.19", + abi_version = "clang", + compile_flags = [ + "-U_FORTIFY_SOURCE", + "-fstack-protector", + "-Wall", + "-Wthread-safety", + "-Wself-assign", + "-fcolor-diagnostics", + "-fno-omit-frame-pointer", + ], + compiler = "clang", + coverage_compile_flags = ["--coverage"], + coverage_link_flags = ["--coverage"], + cpu = "k8", + cxx_builtin_include_directories = [ + "/usr/local/include", + "/usr/lib/llvm-10/lib/clang/10.0.0/include", + "/usr/include/x86_64-linux-gnu", + "/usr/include", + "/usr/lib/llvm-10/lib/clang/10.0.0/share", + "/usr/include/c++/9", + "/usr/include/x86_64-linux-gnu/c++/9", + "/usr/include/c++/9/backward", + "/usr/lib/llvm-10/include/c++/v1", + ], + cxx_flags = ["-std=c++0x"], + dbg_compile_flags = ["-g"], + host_system_name = "i686-unknown-linux-gnu", + link_flags = [ + "-fuse-ld=/usr/bin/ld.gold", + "-Wl,-no-as-needed", + "-Wl,-z,relro,-z,now", + "-B/usr/lib/llvm-10/bin", + ], + link_libs = [ + "-lstdc++", + "-lm", + ], + opt_compile_flags = [ + "-g0", + "-O2", + "-D_FORTIFY_SOURCE=1", + "-DNDEBUG", + "-ffunction-sections", + "-fdata-sections", + ], + opt_link_flags = ["-Wl,--gc-sections"], + supports_start_end_lib = True, + target_libc = "glibc_2.19", + target_system_name = "x86_64-unknown-linux-gnu", + tool_paths = { + "ar": "/usr/bin/ar", + "ld": "/usr/bin/ld", + "llvm-cov": "/usr/bin/llvm-cov", + "cpp": "/usr/bin/cpp", + "gcc": "/usr/lib/llvm-10/bin/clang", + "dwp": "/usr/bin/dwp", + "gcov": "/usr/bin/gcov", + "nm": "/usr/bin/nm", + "objcopy": "/usr/bin/objcopy", + "objdump": "/usr/bin/objdump", + "strip": "/usr/bin/strip", + }, + toolchain_identifier = "linux_gnu_x86", + unfiltered_compile_flags = [ + "-no-canonical-prefixes", + "-Wno-builtin-macro-redefined", + "-D__DATE__=\"redacted\"", + "-D__TIMESTAMP__=\"redacted\"", + "-D__TIME__=\"redacted\"", + ], +) + +filegroup( + name = "compiler_deps", + srcs = glob( + ["extra_tools/**"], + allow_empty = True, + ) + [":builtin_include_directory_paths"], +) + +filegroup( + name = "empty", +) diff --git a/platform/linux_x64/LICENSE b/platform/linux_x64/LICENSE new file mode 100755 index 00000000..f0a1f59a --- /dev/null +++ b/platform/linux_x64/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Google LLC + + 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. \ No newline at end of file diff --git a/platform/linux_x64/builtin_include_directory_paths b/platform/linux_x64/builtin_include_directory_paths new file mode 100644 index 00000000..c819bdde --- /dev/null +++ b/platform/linux_x64/builtin_include_directory_paths @@ -0,0 +1,15 @@ +This file is generated by cc_configure and contains builtin include directories +that /usr/lib/llvm-10/bin/clang reported. This file is a dependency of every compilation action and +changes to it will be reflected in the action cache key. When some of these +paths change, Bazel will make sure to rerun the action, even though none of +declared action inputs or the action commandline changes. + +/usr/local/include +/usr/lib/llvm-10/lib/clang/10.0.0/include +/usr/include/x86_64-linux-gnu +/usr/include +/usr/lib/llvm-10/lib/clang/10.0.0/share +/usr/include/c++/9 +/usr/include/x86_64-linux-gnu/c++/9 +/usr/include/c++/9/backward +/usr/lib/llvm-10/include/c++/v1 diff --git a/platform/linux_x64/cc_toolchain_config.bzl b/platform/linux_x64/cc_toolchain_config.bzl new file mode 100644 index 00000000..e3d72842 --- /dev/null +++ b/platform/linux_x64/cc_toolchain_config.bzl @@ -0,0 +1,1302 @@ +# Copyright 2019 The Bazel Authors. All rights reserved. +# +# 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. + +"""A Starlark cc_toolchain configuration rule""" + +load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") +load( + "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "action_config", + "feature", + "feature_set", + "flag_group", + "flag_set", + "tool", + "tool_path", + "variable_with_value", + "with_feature_set", +) +load("@rules_cc//cc/common:cc_common.bzl", "cc_common") +load("@rules_cc//cc/toolchains:cc_toolchain_config_info.bzl", "CcToolchainConfigInfo") + +def layering_check_features(compiler): + if compiler != "clang": + return [] + return [ + feature( + name = "use_module_maps", + requires = [feature_set(features = ["module_maps"])], + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group( + flags = [ + "-fmodule-name=%{module_name}", + "-fmodule-map-file=%{module_map_file}", + ], + ), + ], + ), + ], + ), + + # Tell blaze we support module maps in general, so they will be generated + # for all c/c++ rules. + # Note: not all C++ rules support module maps; thus, do not imply this + # feature from other features - instead, require it. + feature(name = "module_maps", enabled = True), + feature( + name = "layering_check", + implies = ["use_module_maps"], + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group(flags = [ + "-fmodules-strict-decluse", + "-Wprivate-header", + ]), + flag_group( + iterate_over = "dependent_module_map_files", + flags = [ + "-fmodule-map-file=%{dependent_module_map_files}", + ], + ), + ], + ), + ], + ), + ] + +all_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ACTION_NAMES.lto_backend, +] + +all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, +] + +preprocessor_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, +] + +codegen_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, +] + +all_link_actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, +] + +lto_index_actions = [ + ACTION_NAMES.lto_index_for_executable, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, +] + +def _impl(ctx): + tool_paths = [ + tool_path(name = name, path = path) + for name, path in ctx.attr.tool_paths.items() + ] + action_configs = [] + + llvm_cov_action = action_config( + action_name = ACTION_NAMES.llvm_cov, + tools = [ + tool( + path = ctx.attr.tool_paths["llvm-cov"], + ), + ], + ) + + action_configs.append(llvm_cov_action) + + supports_pic_feature = feature( + name = "supports_pic", + enabled = True, + ) + supports_start_end_lib_feature = feature( + name = "supports_start_end_lib", + enabled = True, + ) + + default_compile_flags_feature = feature( + name = "default_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.compile_flags, + ), + ] if ctx.attr.compile_flags else []), + ), + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.dbg_compile_flags, + ), + ] if ctx.attr.dbg_compile_flags else []), + with_features = [with_feature_set(features = ["dbg"])], + ), + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.opt_compile_flags, + ), + ] if ctx.attr.opt_compile_flags else []), + with_features = [with_feature_set(features = ["opt"])], + ), + flag_set( + actions = all_cpp_compile_actions + [ACTION_NAMES.lto_backend], + flag_groups = ([ + flag_group( + flags = ctx.attr.cxx_flags, + ), + ] if ctx.attr.cxx_flags else []), + ), + ], + ) + + default_link_flags_feature = feature( + name = "default_link_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.link_flags, + ), + ] if ctx.attr.link_flags else []), + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.opt_link_flags, + ), + ] if ctx.attr.opt_link_flags else []), + with_features = [with_feature_set(features = ["opt"])], + ), + ], + ) + + dbg_feature = feature(name = "dbg") + + opt_feature = feature(name = "opt") + + sysroot_feature = feature( + name = "sysroot", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["--sysroot=%{sysroot}"], + expand_if_available = "sysroot", + ), + ], + ), + ], + ) + + fdo_optimize_feature = feature( + name = "fdo_optimize", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-use=%{fdo_profile_path}", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) + + user_compile_flags_feature = feature( + name = "user_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_compile_actions, + flag_groups = [ + flag_group( + flags = ["%{user_compile_flags}"], + iterate_over = "user_compile_flags", + expand_if_available = "user_compile_flags", + ), + ], + ), + ], + ) + + unfiltered_compile_flags_feature = feature( + name = "unfiltered_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.unfiltered_compile_flags, + ), + ] if ctx.attr.unfiltered_compile_flags else []), + ), + ], + ) + + library_search_directories_feature = feature( + name = "library_search_directories", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-L%{library_search_directories}"], + iterate_over = "library_search_directories", + expand_if_available = "library_search_directories", + ), + ], + ), + ], + ) + + static_libgcc_feature = feature( + name = "static_libgcc", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.lto_index_for_executable, + ACTION_NAMES.lto_index_for_dynamic_library, + ], + flag_groups = [flag_group(flags = ["-static-libgcc"])], + with_features = [ + with_feature_set(features = ["static_link_cpp_runtimes"]), + ], + ), + ], + ) + + pic_feature = feature( + name = "pic", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group(flags = ["-fPIC"], expand_if_available = "pic"), + ], + ), + ], + ) + + per_object_debug_info_feature = feature( + name = "per_object_debug_info", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ], + flag_groups = [ + flag_group( + flags = ["-gsplit-dwarf", "-g"], + expand_if_available = "per_object_debug_info_file", + ), + ], + ), + ], + ) + + preprocessor_defines_feature = feature( + name = "preprocessor_defines", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-D%{preprocessor_defines}"], + iterate_over = "preprocessor_defines", + ), + ], + ), + ], + ) + + cs_fdo_optimize_feature = feature( + name = "cs_fdo_optimize", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.lto_backend], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-use=%{fdo_profile_path}", + "-Wno-profile-instr-unprofiled", + "-Wno-profile-instr-out-of-date", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["csprofile"], + ) + + autofdo_feature = feature( + name = "autofdo", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "-fauto-profile=%{fdo_profile_path}", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + runtime_library_search_directories_feature = feature( + name = "runtime_library_search_directories", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + iterate_over = "runtime_library_search_directories", + flag_groups = [ + flag_group( + flags = [ + "-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_true = "is_cc_test", + ), + flag_group( + flags = [ + "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_false = "is_cc_test", + ), + ], + expand_if_available = + "runtime_library_search_directories", + ), + ], + with_features = [ + with_feature_set(features = ["static_link_cpp_runtimes"]), + ], + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + iterate_over = "runtime_library_search_directories", + flag_groups = [ + flag_group( + flags = [ + "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}", + ], + ), + ], + expand_if_available = + "runtime_library_search_directories", + ), + ], + with_features = [ + with_feature_set( + not_features = ["static_link_cpp_runtimes"], + ), + ], + ), + ], + ) + + fission_support_feature = feature( + name = "fission_support", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-Wl,--gdb-index"], + expand_if_available = "is_using_fission", + ), + ], + ), + ], + ) + + shared_flag_feature = feature( + name = "shared_flag", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, + ], + flag_groups = [flag_group(flags = ["-shared"])], + ), + ], + ) + + random_seed_feature = feature( + name = "random_seed", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group( + flags = ["-frandom-seed=%{output_file}"], + expand_if_available = "output_file", + ), + ], + ), + ], + ) + + includes_feature = feature( + name = "includes", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-include", "%{includes}"], + iterate_over = "includes", + expand_if_available = "includes", + ), + ], + ), + ], + ) + + fdo_instrument_feature = feature( + name = "fdo_instrument", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = [ + "-fprofile-generate=%{fdo_instrument_path}", + "-fno-data-sections", + ], + expand_if_available = "fdo_instrument_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + cs_fdo_instrument_feature = feature( + name = "cs_fdo_instrument", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.lto_backend, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = [ + "-fcs-profile-generate=%{cs_fdo_instrument_path}", + ], + expand_if_available = "cs_fdo_instrument_path", + ), + ], + ), + ], + provides = ["csprofile"], + ) + + include_paths_feature = feature( + name = "include_paths", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-iquote", "%{quote_include_paths}"], + iterate_over = "quote_include_paths", + ), + flag_group( + flags = ["-I%{include_paths}"], + iterate_over = "include_paths", + ), + flag_group( + flags = ["-isystem", "%{system_include_paths}"], + iterate_over = "system_include_paths", + ), + ], + ), + ], + ) + + external_include_paths_feature = feature( + name = "external_include_paths", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-isystem", "%{external_include_paths}"], + iterate_over = "external_include_paths", + expand_if_available = "external_include_paths", + ), + ], + ), + ], + ) + + symbol_counts_feature = feature( + name = "symbol_counts", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = [ + "-Wl,--print-symbol-counts=%{symbol_counts_output}", + ], + expand_if_available = "symbol_counts_output", + ), + ], + ), + ], + ) + + llvm_coverage_map_format_feature = feature( + name = "llvm_coverage_map_format", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-instr-generate", + "-fcoverage-mapping", + ], + ), + ], + ), + flag_set( + actions = all_link_actions + lto_index_actions + [ + "objc-executable", + "objc++-executable", + ], + flag_groups = [ + flag_group(flags = ["-fprofile-instr-generate"]), + ], + ), + ], + requires = [feature_set(features = ["coverage"])], + provides = ["profile"], + ) + + strip_debug_symbols_feature = feature( + name = "strip_debug_symbols", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-Wl,-S"], + expand_if_available = "strip_debug_symbols", + ), + ], + ), + ], + ) + + build_interface_libraries_feature = feature( + name = "build_interface_libraries", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = [ + "%{generate_interface_library}", + "%{interface_library_builder_path}", + "%{interface_library_input_path}", + "%{interface_library_output_path}", + ], + expand_if_available = "generate_interface_library", + ), + ], + with_features = [ + with_feature_set( + features = ["supports_interface_shared_libraries"], + ), + ], + ), + ], + ) + + libraries_to_link_feature = feature( + name = "libraries_to_link", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["-Wl,--start-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["-Wl,-whole-archive"], + expand_if_true = + "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "interface_library", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "static_library", + ), + ), + flag_group( + flags = ["-l%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "dynamic_library", + ), + ), + flag_group( + flags = ["-l:%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "versioned_dynamic_library", + ), + ), + flag_group( + flags = ["-Wl,-no-whole-archive"], + expand_if_true = "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["-Wl,--end-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + flag_group( + flags = ["-Wl,@%{thinlto_param_file}"], + expand_if_true = "thinlto_param_file", + ), + ], + ), + ], + ) + + user_link_flags_feature = feature( + name = "user_link_flags", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["%{user_link_flags}"], + iterate_over = "user_link_flags", + expand_if_available = "user_link_flags", + ), + ] + ([flag_group(flags = ctx.attr.link_libs)] if ctx.attr.link_libs else []), + ), + ], + ) + + fdo_prefetch_hints_feature = feature( + name = "fdo_prefetch_hints", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.lto_backend, + ], + flag_groups = [ + flag_group( + flags = [ + "-mllvm", + "-prefetch-hints-file=%{fdo_prefetch_hints_path}", + ], + expand_if_available = "fdo_prefetch_hints_path", + ), + ], + ), + ], + ) + + linkstamps_feature = feature( + name = "linkstamps", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["%{linkstamp_paths}"], + iterate_over = "linkstamp_paths", + expand_if_available = "linkstamp_paths", + ), + ], + ), + ], + ) + + gcc_coverage_map_format_feature = feature( + name = "gcc_coverage_map_format", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + "objc-executable", + "objc++-executable", + ], + flag_groups = [ + flag_group( + flags = ["-fprofile-arcs", "-ftest-coverage"], + expand_if_available = "gcov_gcno_file", + ), + ], + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [flag_group(flags = ["--coverage"])], + ), + ], + requires = [feature_set(features = ["coverage"])], + provides = ["profile"], + ) + + archiver_flags_feature = feature( + name = "archiver_flags", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group(flags = ["rcsD"]), + flag_group( + flags = ["%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + ], + ), + ], + ) + + force_pic_flags_feature = feature( + name = "force_pic_flags", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.lto_index_for_executable, + ], + flag_groups = [ + flag_group( + flags = ["-pie"], + expand_if_available = "force_pic", + ), + ], + ), + ], + ) + + dependency_file_feature = feature( + name = "dependency_file", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-MD", "-MF", "%{dependency_file}"], + expand_if_available = "dependency_file", + ), + ], + ), + ], + ) + + dynamic_library_linker_tool_path = tool_paths + dynamic_library_linker_tool_feature = feature( + name = "dynamic_library_linker_tool", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = [" + cppLinkDynamicLibraryToolPath + "], + expand_if_available = "generate_interface_library", + ), + ], + with_features = [ + with_feature_set( + features = ["supports_interface_shared_libraries"], + ), + ], + ), + ], + ) + + output_execpath_flags_feature = feature( + name = "output_execpath_flags", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-o", "%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + ], + ) + + # Note that we also set --coverage for c++-link-nodeps-dynamic-library. The + # generated code contains references to gcov symbols, and the dynamic linker + # can't resolve them unless the library is linked against gcov. + coverage_feature = feature( + name = "coverage", + provides = ["profile"], + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = ([ + flag_group(flags = ctx.attr.coverage_compile_flags), + ] if ctx.attr.coverage_compile_flags else []), + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = ([ + flag_group(flags = ctx.attr.coverage_link_flags), + ] if ctx.attr.coverage_link_flags else []), + ), + ], + ) + + thinlto_feature = feature( + name = "thin_lto", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group(flags = ["-flto=thin"]), + flag_group( + expand_if_available = "lto_indexing_bitcode_file", + flags = [ + "-Xclang", + "-fthin-link-bitcode=%{lto_indexing_bitcode_file}", + ], + ), + ], + ), + flag_set( + actions = [ACTION_NAMES.linkstamp_compile], + flag_groups = [flag_group(flags = ["-DBUILD_LTO_TYPE=thin"])], + ), + flag_set( + actions = lto_index_actions, + flag_groups = [ + flag_group(flags = [ + "-flto=thin", + "-Wl,-plugin-opt,thinlto-index-only%{thinlto_optional_params_file}", + "-Wl,-plugin-opt,thinlto-emit-imports-files", + "-Wl,-plugin-opt,thinlto-prefix-replace=%{thinlto_prefix_replace}", + ]), + flag_group( + expand_if_available = "thinlto_object_suffix_replace", + flags = [ + "-Wl,-plugin-opt,thinlto-object-suffix-replace=%{thinlto_object_suffix_replace}", + ], + ), + flag_group( + expand_if_available = "thinlto_merged_object_file", + flags = [ + "-Wl,-plugin-opt,obj-path=%{thinlto_merged_object_file}", + ], + ), + ], + ), + flag_set( + actions = [ACTION_NAMES.lto_backend], + flag_groups = [ + flag_group(flags = [ + "-c", + "-fthinlto-index=%{thinlto_index}", + "-o", + "%{thinlto_output_object_file}", + "-x", + "ir", + "%{thinlto_input_bitcode_file}", + ]), + ], + ), + ], + ) + + is_linux = ctx.attr.target_libc != "macosx" + + # TODO(#8303): Mac crosstool should also declare every feature. + if is_linux: + features = [ + dependency_file_feature, + random_seed_feature, + pic_feature, + per_object_debug_info_feature, + preprocessor_defines_feature, + includes_feature, + include_paths_feature, + external_include_paths_feature, + fdo_instrument_feature, + cs_fdo_instrument_feature, + cs_fdo_optimize_feature, + thinlto_feature, + fdo_prefetch_hints_feature, + autofdo_feature, + build_interface_libraries_feature, + dynamic_library_linker_tool_feature, + symbol_counts_feature, + shared_flag_feature, + linkstamps_feature, + output_execpath_flags_feature, + runtime_library_search_directories_feature, + library_search_directories_feature, + archiver_flags_feature, + force_pic_flags_feature, + fission_support_feature, + strip_debug_symbols_feature, + coverage_feature, + supports_pic_feature, + ] + ( + [ + supports_start_end_lib_feature, + ] if ctx.attr.supports_start_end_lib else [] + ) + [ + default_compile_flags_feature, + default_link_flags_feature, + libraries_to_link_feature, + user_link_flags_feature, + static_libgcc_feature, + fdo_optimize_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + user_compile_flags_feature, + sysroot_feature, + unfiltered_compile_flags_feature, + ] + layering_check_features(ctx.attr.compiler) + else: + features = [ + supports_pic_feature, + ] + ( + [ + supports_start_end_lib_feature, + ] if ctx.attr.supports_start_end_lib else [] + ) + [ + coverage_feature, + default_compile_flags_feature, + default_link_flags_feature, + user_link_flags_feature, + fdo_optimize_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + user_compile_flags_feature, + sysroot_feature, + unfiltered_compile_flags_feature, + ] + layering_check_features(ctx.attr.compiler) + + return cc_common.create_cc_toolchain_config_info( + ctx = ctx, + features = features, + action_configs = action_configs, + cxx_builtin_include_directories = ctx.attr.cxx_builtin_include_directories, + toolchain_identifier = ctx.attr.toolchain_identifier, + host_system_name = ctx.attr.host_system_name, + target_system_name = ctx.attr.target_system_name, + target_cpu = ctx.attr.cpu, + target_libc = ctx.attr.target_libc, + compiler = ctx.attr.compiler, + abi_version = ctx.attr.abi_version, + abi_libc_version = ctx.attr.abi_libc_version, + tool_paths = tool_paths, + builtin_sysroot = ctx.attr.builtin_sysroot, + ) + +cc_toolchain_config = rule( + implementation = _impl, + attrs = { + "cpu": attr.string(mandatory = True), + "compiler": attr.string(mandatory = True), + "toolchain_identifier": attr.string(mandatory = True), + "host_system_name": attr.string(mandatory = True), + "target_system_name": attr.string(mandatory = True), + "target_libc": attr.string(mandatory = True), + "abi_version": attr.string(mandatory = True), + "abi_libc_version": attr.string(mandatory = True), + "cxx_builtin_include_directories": attr.string_list(), + "tool_paths": attr.string_dict(), + "compile_flags": attr.string_list(), + "dbg_compile_flags": attr.string_list(), + "opt_compile_flags": attr.string_list(), + "cxx_flags": attr.string_list(), + "link_flags": attr.string_list(), + "link_libs": attr.string_list(), + "opt_link_flags": attr.string_list(), + "unfiltered_compile_flags": attr.string_list(), + "coverage_compile_flags": attr.string_list(), + "coverage_link_flags": attr.string_list(), + "supports_start_end_lib": attr.bool(), + "builtin_sysroot": attr.string(), + }, + provides = [CcToolchainConfigInfo], +) diff --git a/platform/linux_x64/docker/Dockerfile b/platform/linux_x64/docker/Dockerfile new file mode 100644 index 00000000..663d2e76 --- /dev/null +++ b/platform/linux_x64/docker/Dockerfile @@ -0,0 +1,22 @@ +FROM debian:latest +ENV DEBIAN_FRONTEND noninteractive + +RUN groupadd \ + --gid 114 \ + engflow && \ + useradd \ + --home-dir /home/engflow \ + --create-home \ + --uid 108 \ + --gid 114 \ + engflow +ENV HOME=/home/engflow + +RUN apt-get update --quiet --quiet --yes && \ + apt-get install --quiet --quiet --fix-broken --yes \ + clang \ + curl \ + python3 \ + python-is-python3 \ + zip && \ + rm -rf /var/lib/apt/lists/* diff --git a/platform/linux_x64/docker/README.md b/platform/linux_x64/docker/README.md new file mode 100644 index 00000000..702a8544 --- /dev/null +++ b/platform/linux_x64/docker/README.md @@ -0,0 +1,3 @@ +This directory contains a minimal Dockerfile you can use to build a container image to be used with remote execution. + +See https://docs.engflow.com/re/client/create-container.html for a complete explanation on what tools should be installed in a container image, where the image should be stored, and how to configure Bazel to use your image. diff --git a/platform/linux_x64/module.modulemap b/platform/linux_x64/module.modulemap new file mode 100644 index 00000000..1f254315 --- /dev/null +++ b/platform/linux_x64/module.modulemap @@ -0,0 +1,7384 @@ +module "crosstool" [system] { + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_builtin_vars.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_cmath.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_complex_builtins.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_device_functions.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_intrinsics.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_libdevice_declares.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_math_forward_declares.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__clang_cuda_runtime_wrapper.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__stddef_max_align_t.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__wmmintrin_aes.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/__wmmintrin_pclmul.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/adxintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/altivec.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ammintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/arm64intr.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/arm_acle.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/arm_cmse.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/arm_fp16.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/arm_mve.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/arm_neon.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/armintr.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx2intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512bf16intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512bitalgintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512bwintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512cdintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512dqintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512erintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512fintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512ifmaintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512ifmavlintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512pfintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vbmi2intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vbmiintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vbmivlintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlbf16intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlbitalgintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlbwintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlcdintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vldqintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlvbmi2intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlvnniintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vlvp2intersectintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vnniintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vp2intersectintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vpopcntdqintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avx512vpopcntdqvlintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/avxintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/bmi2intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/bmiintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/cetintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/cldemoteintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/clflushoptintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/clwbintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/clzerointrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/cpuid.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/cuda_wrappers/algorithm" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/cuda_wrappers/complex" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/cuda_wrappers/new" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/emmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/enqcmdintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/f16cintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/float.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/fma4intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/fmaintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/fuzzer/FuzzedDataProvider.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/fxsrintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/gfniintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/htmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/htmxlintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ia32intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/immintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/inttypes.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/invpcidintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/iso646.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/limits.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/lwpintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/lzcntintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/mm3dnow.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/mm_malloc.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/module.modulemap" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/movdirintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/msa.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/mwaitxintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/nmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/omp-tools.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/omp.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ompt.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/opencl-c-base.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/opencl-c.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/openmp_wrappers/__clang_openmp_math.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/openmp_wrappers/__clang_openmp_math_declares.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/openmp_wrappers/cmath" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/openmp_wrappers/math.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/pconfigintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/pkuintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/pmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/popcntintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ppc_wrappers/emmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ppc_wrappers/mm_malloc.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ppc_wrappers/mmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ppc_wrappers/pmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ppc_wrappers/smmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ppc_wrappers/tmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ppc_wrappers/xmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/prfchwintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/profile/InstrProfData.inc" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/ptwriteintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/rdseedintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/rtmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/s390intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/allocator_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/asan_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/common_interface_defs.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/coverage_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/dfsan_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/hwasan_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/linux_syscall_hooks.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/lsan_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/msan_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/netbsd_syscall_hooks.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/scudo_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface_atomic.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/ubsan_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/sgxintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/shaintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/smmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/stdalign.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/stdarg.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/stdatomic.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/stdbool.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/stdint.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/stdnoreturn.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/tbmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/tgmath.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/tmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/unwind.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/vadefs.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/vaesintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/varargs.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/vecintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/vpclmulqdqintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/waitpkgintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/wbnoinvdintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/wmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/x86intrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xmmintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xopintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xray/xray_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xray/xray_log_interface.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xray/xray_records.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xsavecintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xsaveintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xsaveoptintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xsavesintrin.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/include/xtestintrin.h" + textual header "/usr/include/x86_64-linux-gnu/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/auxvec.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bitsperlong.h" + textual header "/usr/include/x86_64-linux-gnu/asm/boot.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bootparam.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bpf_perf_event.h" + textual header "/usr/include/x86_64-linux-gnu/asm/byteorder.h" + textual header "/usr/include/x86_64-linux-gnu/asm/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/asm/e820.h" + textual header "/usr/include/x86_64-linux-gnu/asm/errno.h" + textual header "/usr/include/x86_64-linux-gnu/asm/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hw_breakpoint.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hwcap2.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ipcbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ist.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_para.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_perf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ldt.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mce.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mman.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msgbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mtrr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/param.h" + textual header "/usr/include/x86_64-linux-gnu/asm/perf_regs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/poll.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/processor-flags.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace-abi.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/asm/resource.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sembuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/setup.h" + textual header "/usr/include/x86_64-linux-gnu/asm/shmbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/siginfo.h" + textual header "/usr/include/x86_64-linux-gnu/asm/signal.h" + textual header "/usr/include/x86_64-linux-gnu/asm/socket.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sockios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/stat.h" + textual header "/usr/include/x86_64-linux-gnu/asm/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/svm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/swab.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termbits.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vmx.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vsyscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/bits/argp-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/byteswap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cmathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/confname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dlfcn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/elfclass.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endian.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endianness.h" + textual header "/usr/include/x86_64-linux-gnu/bits/environments.h" + textual header "/usr/include/x86_64-linux-gnu/bits/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/err-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/errno.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error.h" + textual header "/usr/include/x86_64-linux-gnu/bits/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fenv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fenvinline.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_core.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_posix.h" + textual header "/usr/include/x86_64-linux-gnu/bits/hwcap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/in.h" + textual header "/usr/include/x86_64-linux-gnu/bits/indirect-return.h" + textual header "/usr/include/x86_64-linux-gnu/bits/initspin.h" + textual header "/usr/include/x86_64-linux-gnu/bits/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctl-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc-perm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipctypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/link.h" + textual header "/usr/include/x86_64-linux-gnu/bits/local_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/locale.h" + textual header "/usr/include/x86_64-linux-gnu/bits/long-double.h" + textual header "/usr/include/x86_64-linux-gnu/bits/math-vector.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathdef.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathinline.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman.h" + textual header "/usr/include/x86_64-linux-gnu/bits/monetary-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/msq-pad.h" + textual header "/usr/include/x86_64-linux-gnu/bits/msq.h" + textual header "/usr/include/x86_64-linux-gnu/bits/netdb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix_opt.h" + textual header "/usr/include/x86_64-linux-gnu/bits/printf-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-extra.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-id.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-prregset.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ptrace-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/resource.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sched.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sem-pad.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sem.h" + textual header "/usr/include/x86_64-linux-gnu/bits/semaphore.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shm-pad.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shmlba.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigaction.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signal_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigthread.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket-constants.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket_type.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ss_flags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stab.def" + textual header "/usr/include/x86_64-linux-gnu/bits/stat.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib.h" + textual header "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sysctl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-path.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-baud.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-misc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-struct.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-tcflow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios.h" + textual header "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time64.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timesize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/error_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/res_state.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/typesizes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio-ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmpx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitflags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wordsize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/basic_file.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++io.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/cxxabi_tweaks.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/extc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-posix.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-single.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/stdtr1c++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/ext/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/expat_config.h" + textual header "/usr/include/x86_64-linux-gnu/ffi.h" + textual header "/usr/include/x86_64-linux-gnu/ffitarget.h" + textual header "/usr/include/x86_64-linux-gnu/fpu_control.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/libc-version.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs.h" + textual header "/usr/include/x86_64-linux-gnu/ieee754.h" + textual header "/usr/include/x86_64-linux-gnu/openssl/opensslconf.h" + textual header "/usr/include/x86_64-linux-gnu/python2.7/pyconfig.h" + textual header "/usr/include/x86_64-linux-gnu/python3.8/pyconfig.h" + textual header "/usr/include/x86_64-linux-gnu/sys/acct.h" + textual header "/usr/include/x86_64-linux-gnu/sys/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/sys/bitypes.h" + textual header "/usr/include/x86_64-linux-gnu/sys/cdefs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/dir.h" + textual header "/usr/include/x86_64-linux-gnu/sys/elf.h" + textual header "/usr/include/x86_64-linux-gnu/sys/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/errno.h" + textual header "/usr/include/x86_64-linux-gnu/sys/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fanotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/file.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fsuid.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon_out.h" + textual header "/usr/include/x86_64-linux-gnu/sys/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/io.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/sys/kd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/klog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mman.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mount.h" + textual header "/usr/include/x86_64-linux-gnu/sys/msg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mtio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/param.h" + textual header "/usr/include/x86_64-linux-gnu/sys/pci.h" + textual header "/usr/include/x86_64-linux-gnu/sys/perm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/personality.h" + textual header "/usr/include/x86_64-linux-gnu/sys/poll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/profil.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/sys/queue.h" + textual header "/usr/include/x86_64-linux-gnu/sys/quota.h" + textual header "/usr/include/x86_64-linux-gnu/sys/random.h" + textual header "/usr/include/x86_64-linux-gnu/sys/raw.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reboot.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/resource.h" + textual header "/usr/include/x86_64-linux-gnu/sys/select.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sem.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sendfile.h" + textual header "/usr/include/x86_64-linux-gnu/sys/shm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signal.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socket.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socketvar.h" + textual header "/usr/include/x86_64-linux-gnu/sys/soundcard.h" + textual header "/usr/include/x86_64-linux-gnu/sys/stat.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/swap.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysinfo.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/sys/termios.h" + textual header "/usr/include/x86_64-linux-gnu/sys/time.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timeb.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/times.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timex.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttychars.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttydefaults.h" + textual header "/usr/include/x86_64-linux-gnu/sys/types.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/sys/uio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/un.h" + textual header "/usr/include/x86_64-linux-gnu/sys/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/user.h" + textual header "/usr/include/x86_64-linux-gnu/sys/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vlimit.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vt.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vtimes.h" + textual header "/usr/include/x86_64-linux-gnu/sys/wait.h" + textual header "/usr/include/x86_64-linux-gnu/sys/xattr.h" + textual header "/usr/include/aio.h" + textual header "/usr/include/aliases.h" + textual header "/usr/include/alloca.h" + textual header "/usr/include/ar.h" + textual header "/usr/include/argp.h" + textual header "/usr/include/argz.h" + textual header "/usr/include/arpa/ftp.h" + textual header "/usr/include/arpa/inet.h" + textual header "/usr/include/arpa/nameser.h" + textual header "/usr/include/arpa/nameser_compat.h" + textual header "/usr/include/arpa/telnet.h" + textual header "/usr/include/arpa/tftp.h" + textual header "/usr/include/asm-generic/auxvec.h" + textual header "/usr/include/asm-generic/bitsperlong.h" + textual header "/usr/include/asm-generic/bpf_perf_event.h" + textual header "/usr/include/asm-generic/errno-base.h" + textual header "/usr/include/asm-generic/errno.h" + textual header "/usr/include/asm-generic/fcntl.h" + textual header "/usr/include/asm-generic/hugetlb_encode.h" + textual header "/usr/include/asm-generic/int-l64.h" + textual header "/usr/include/asm-generic/int-ll64.h" + textual header "/usr/include/asm-generic/ioctl.h" + textual header "/usr/include/asm-generic/ioctls.h" + textual header "/usr/include/asm-generic/ipcbuf.h" + textual header "/usr/include/asm-generic/kvm_para.h" + textual header "/usr/include/asm-generic/mman-common.h" + textual header "/usr/include/asm-generic/mman.h" + textual header "/usr/include/asm-generic/msgbuf.h" + textual header "/usr/include/asm-generic/param.h" + textual header "/usr/include/asm-generic/poll.h" + textual header "/usr/include/asm-generic/posix_types.h" + textual header "/usr/include/asm-generic/resource.h" + textual header "/usr/include/asm-generic/sembuf.h" + textual header "/usr/include/asm-generic/setup.h" + textual header "/usr/include/asm-generic/shmbuf.h" + textual header "/usr/include/asm-generic/siginfo.h" + textual header "/usr/include/asm-generic/signal-defs.h" + textual header "/usr/include/asm-generic/signal.h" + textual header "/usr/include/asm-generic/socket.h" + textual header "/usr/include/asm-generic/sockios.h" + textual header "/usr/include/asm-generic/stat.h" + textual header "/usr/include/asm-generic/statfs.h" + textual header "/usr/include/asm-generic/swab.h" + textual header "/usr/include/asm-generic/termbits.h" + textual header "/usr/include/asm-generic/termios.h" + textual header "/usr/include/asm-generic/types.h" + textual header "/usr/include/asm-generic/ucontext.h" + textual header "/usr/include/asm-generic/unistd.h" + textual header "/usr/include/assert.h" + textual header "/usr/include/byteswap.h" + textual header "/usr/include/c++/9/algorithm" + textual header "/usr/include/c++/9/any" + textual header "/usr/include/c++/9/array" + textual header "/usr/include/c++/9/atomic" + textual header "/usr/include/c++/9/backward/auto_ptr.h" + textual header "/usr/include/c++/9/backward/backward_warning.h" + textual header "/usr/include/c++/9/backward/binders.h" + textual header "/usr/include/c++/9/backward/hash_fun.h" + textual header "/usr/include/c++/9/backward/hash_map" + textual header "/usr/include/c++/9/backward/hash_set" + textual header "/usr/include/c++/9/backward/hashtable.h" + textual header "/usr/include/c++/9/backward/strstream" + textual header "/usr/include/c++/9/bit" + textual header "/usr/include/c++/9/bits/algorithmfwd.h" + textual header "/usr/include/c++/9/bits/alloc_traits.h" + textual header "/usr/include/c++/9/bits/allocated_ptr.h" + textual header "/usr/include/c++/9/bits/allocator.h" + textual header "/usr/include/c++/9/bits/atomic_base.h" + textual header "/usr/include/c++/9/bits/atomic_futex.h" + textual header "/usr/include/c++/9/bits/atomic_lockfree_defines.h" + textual header "/usr/include/c++/9/bits/basic_ios.h" + textual header "/usr/include/c++/9/bits/basic_ios.tcc" + textual header "/usr/include/c++/9/bits/basic_string.h" + textual header "/usr/include/c++/9/bits/basic_string.tcc" + textual header "/usr/include/c++/9/bits/boost_concept_check.h" + textual header "/usr/include/c++/9/bits/c++0x_warning.h" + textual header "/usr/include/c++/9/bits/char_traits.h" + textual header "/usr/include/c++/9/bits/codecvt.h" + textual header "/usr/include/c++/9/bits/concept_check.h" + textual header "/usr/include/c++/9/bits/cpp_type_traits.h" + textual header "/usr/include/c++/9/bits/cxxabi_forced.h" + textual header "/usr/include/c++/9/bits/cxxabi_init_exception.h" + textual header "/usr/include/c++/9/bits/deque.tcc" + textual header "/usr/include/c++/9/bits/enable_special_members.h" + textual header "/usr/include/c++/9/bits/erase_if.h" + textual header "/usr/include/c++/9/bits/exception.h" + textual header "/usr/include/c++/9/bits/exception_defines.h" + textual header "/usr/include/c++/9/bits/exception_ptr.h" + textual header "/usr/include/c++/9/bits/forward_list.h" + textual header "/usr/include/c++/9/bits/forward_list.tcc" + textual header "/usr/include/c++/9/bits/fs_dir.h" + textual header "/usr/include/c++/9/bits/fs_fwd.h" + textual header "/usr/include/c++/9/bits/fs_ops.h" + textual header "/usr/include/c++/9/bits/fs_path.h" + textual header "/usr/include/c++/9/bits/fstream.tcc" + textual header "/usr/include/c++/9/bits/functexcept.h" + textual header "/usr/include/c++/9/bits/functional_hash.h" + textual header "/usr/include/c++/9/bits/gslice.h" + textual header "/usr/include/c++/9/bits/gslice_array.h" + textual header "/usr/include/c++/9/bits/hash_bytes.h" + textual header "/usr/include/c++/9/bits/hashtable.h" + textual header "/usr/include/c++/9/bits/hashtable_policy.h" + textual header "/usr/include/c++/9/bits/indirect_array.h" + textual header "/usr/include/c++/9/bits/invoke.h" + textual header "/usr/include/c++/9/bits/ios_base.h" + textual header "/usr/include/c++/9/bits/istream.tcc" + textual header "/usr/include/c++/9/bits/list.tcc" + textual header "/usr/include/c++/9/bits/locale_classes.h" + textual header "/usr/include/c++/9/bits/locale_classes.tcc" + textual header "/usr/include/c++/9/bits/locale_conv.h" + textual header "/usr/include/c++/9/bits/locale_facets.h" + textual header "/usr/include/c++/9/bits/locale_facets.tcc" + textual header "/usr/include/c++/9/bits/locale_facets_nonio.h" + textual header "/usr/include/c++/9/bits/locale_facets_nonio.tcc" + textual header "/usr/include/c++/9/bits/localefwd.h" + textual header "/usr/include/c++/9/bits/mask_array.h" + textual header "/usr/include/c++/9/bits/memoryfwd.h" + textual header "/usr/include/c++/9/bits/move.h" + textual header "/usr/include/c++/9/bits/nested_exception.h" + textual header "/usr/include/c++/9/bits/node_handle.h" + textual header "/usr/include/c++/9/bits/ostream.tcc" + textual header "/usr/include/c++/9/bits/ostream_insert.h" + textual header "/usr/include/c++/9/bits/parse_numbers.h" + textual header "/usr/include/c++/9/bits/postypes.h" + textual header "/usr/include/c++/9/bits/predefined_ops.h" + textual header "/usr/include/c++/9/bits/ptr_traits.h" + textual header "/usr/include/c++/9/bits/quoted_string.h" + textual header "/usr/include/c++/9/bits/random.h" + textual header "/usr/include/c++/9/bits/random.tcc" + textual header "/usr/include/c++/9/bits/range_access.h" + textual header "/usr/include/c++/9/bits/refwrap.h" + textual header "/usr/include/c++/9/bits/regex.h" + textual header "/usr/include/c++/9/bits/regex.tcc" + textual header "/usr/include/c++/9/bits/regex_automaton.h" + textual header "/usr/include/c++/9/bits/regex_automaton.tcc" + textual header "/usr/include/c++/9/bits/regex_compiler.h" + textual header "/usr/include/c++/9/bits/regex_compiler.tcc" + textual header "/usr/include/c++/9/bits/regex_constants.h" + textual header "/usr/include/c++/9/bits/regex_error.h" + textual header "/usr/include/c++/9/bits/regex_executor.h" + textual header "/usr/include/c++/9/bits/regex_executor.tcc" + textual header "/usr/include/c++/9/bits/regex_scanner.h" + textual header "/usr/include/c++/9/bits/regex_scanner.tcc" + textual header "/usr/include/c++/9/bits/shared_ptr.h" + textual header "/usr/include/c++/9/bits/shared_ptr_atomic.h" + textual header "/usr/include/c++/9/bits/shared_ptr_base.h" + textual header "/usr/include/c++/9/bits/slice_array.h" + textual header "/usr/include/c++/9/bits/specfun.h" + textual header "/usr/include/c++/9/bits/sstream.tcc" + textual header "/usr/include/c++/9/bits/std_abs.h" + textual header "/usr/include/c++/9/bits/std_function.h" + textual header "/usr/include/c++/9/bits/std_mutex.h" + textual header "/usr/include/c++/9/bits/stl_algo.h" + textual header "/usr/include/c++/9/bits/stl_algobase.h" + textual header "/usr/include/c++/9/bits/stl_bvector.h" + textual header "/usr/include/c++/9/bits/stl_construct.h" + textual header "/usr/include/c++/9/bits/stl_deque.h" + textual header "/usr/include/c++/9/bits/stl_function.h" + textual header "/usr/include/c++/9/bits/stl_heap.h" + textual header "/usr/include/c++/9/bits/stl_iterator.h" + textual header "/usr/include/c++/9/bits/stl_iterator_base_funcs.h" + textual header "/usr/include/c++/9/bits/stl_iterator_base_types.h" + textual header "/usr/include/c++/9/bits/stl_list.h" + textual header "/usr/include/c++/9/bits/stl_map.h" + textual header "/usr/include/c++/9/bits/stl_multimap.h" + textual header "/usr/include/c++/9/bits/stl_multiset.h" + textual header "/usr/include/c++/9/bits/stl_numeric.h" + textual header "/usr/include/c++/9/bits/stl_pair.h" + textual header "/usr/include/c++/9/bits/stl_queue.h" + textual header "/usr/include/c++/9/bits/stl_raw_storage_iter.h" + textual header "/usr/include/c++/9/bits/stl_relops.h" + textual header "/usr/include/c++/9/bits/stl_set.h" + textual header "/usr/include/c++/9/bits/stl_stack.h" + textual header "/usr/include/c++/9/bits/stl_tempbuf.h" + textual header "/usr/include/c++/9/bits/stl_tree.h" + textual header "/usr/include/c++/9/bits/stl_uninitialized.h" + textual header "/usr/include/c++/9/bits/stl_vector.h" + textual header "/usr/include/c++/9/bits/stream_iterator.h" + textual header "/usr/include/c++/9/bits/streambuf.tcc" + textual header "/usr/include/c++/9/bits/streambuf_iterator.h" + textual header "/usr/include/c++/9/bits/string_view.tcc" + textual header "/usr/include/c++/9/bits/stringfwd.h" + textual header "/usr/include/c++/9/bits/uniform_int_dist.h" + textual header "/usr/include/c++/9/bits/unique_lock.h" + textual header "/usr/include/c++/9/bits/unique_ptr.h" + textual header "/usr/include/c++/9/bits/unordered_map.h" + textual header "/usr/include/c++/9/bits/unordered_set.h" + textual header "/usr/include/c++/9/bits/uses_allocator.h" + textual header "/usr/include/c++/9/bits/valarray_after.h" + textual header "/usr/include/c++/9/bits/valarray_array.h" + textual header "/usr/include/c++/9/bits/valarray_array.tcc" + textual header "/usr/include/c++/9/bits/valarray_before.h" + textual header "/usr/include/c++/9/bits/vector.tcc" + textual header "/usr/include/c++/9/bitset" + textual header "/usr/include/c++/9/cassert" + textual header "/usr/include/c++/9/ccomplex" + textual header "/usr/include/c++/9/cctype" + textual header "/usr/include/c++/9/cerrno" + textual header "/usr/include/c++/9/cfenv" + textual header "/usr/include/c++/9/cfloat" + textual header "/usr/include/c++/9/charconv" + textual header "/usr/include/c++/9/chrono" + textual header "/usr/include/c++/9/cinttypes" + textual header "/usr/include/c++/9/ciso646" + textual header "/usr/include/c++/9/climits" + textual header "/usr/include/c++/9/clocale" + textual header "/usr/include/c++/9/cmath" + textual header "/usr/include/c++/9/codecvt" + textual header "/usr/include/c++/9/complex" + textual header "/usr/include/c++/9/complex.h" + textual header "/usr/include/c++/9/condition_variable" + textual header "/usr/include/c++/9/csetjmp" + textual header "/usr/include/c++/9/csignal" + textual header "/usr/include/c++/9/cstdalign" + textual header "/usr/include/c++/9/cstdarg" + textual header "/usr/include/c++/9/cstdbool" + textual header "/usr/include/c++/9/cstddef" + textual header "/usr/include/c++/9/cstdint" + textual header "/usr/include/c++/9/cstdio" + textual header "/usr/include/c++/9/cstdlib" + textual header "/usr/include/c++/9/cstring" + textual header "/usr/include/c++/9/ctgmath" + textual header "/usr/include/c++/9/ctime" + textual header "/usr/include/c++/9/cuchar" + textual header "/usr/include/c++/9/cwchar" + textual header "/usr/include/c++/9/cwctype" + textual header "/usr/include/c++/9/cxxabi.h" + textual header "/usr/include/c++/9/debug/array" + textual header "/usr/include/c++/9/debug/assertions.h" + textual header "/usr/include/c++/9/debug/bitset" + textual header "/usr/include/c++/9/debug/debug.h" + textual header "/usr/include/c++/9/debug/deque" + textual header "/usr/include/c++/9/debug/formatter.h" + textual header "/usr/include/c++/9/debug/forward_list" + textual header "/usr/include/c++/9/debug/functions.h" + textual header "/usr/include/c++/9/debug/helper_functions.h" + textual header "/usr/include/c++/9/debug/list" + textual header "/usr/include/c++/9/debug/macros.h" + textual header "/usr/include/c++/9/debug/map" + textual header "/usr/include/c++/9/debug/map.h" + textual header "/usr/include/c++/9/debug/multimap.h" + textual header "/usr/include/c++/9/debug/multiset.h" + textual header "/usr/include/c++/9/debug/safe_base.h" + textual header "/usr/include/c++/9/debug/safe_container.h" + textual header "/usr/include/c++/9/debug/safe_iterator.h" + textual header "/usr/include/c++/9/debug/safe_iterator.tcc" + textual header "/usr/include/c++/9/debug/safe_local_iterator.h" + textual header "/usr/include/c++/9/debug/safe_local_iterator.tcc" + textual header "/usr/include/c++/9/debug/safe_sequence.h" + textual header "/usr/include/c++/9/debug/safe_sequence.tcc" + textual header "/usr/include/c++/9/debug/safe_unordered_base.h" + textual header "/usr/include/c++/9/debug/safe_unordered_container.h" + textual header "/usr/include/c++/9/debug/safe_unordered_container.tcc" + textual header "/usr/include/c++/9/debug/set" + textual header "/usr/include/c++/9/debug/set.h" + textual header "/usr/include/c++/9/debug/stl_iterator.h" + textual header "/usr/include/c++/9/debug/string" + textual header "/usr/include/c++/9/debug/unordered_map" + textual header "/usr/include/c++/9/debug/unordered_set" + textual header "/usr/include/c++/9/debug/vector" + textual header "/usr/include/c++/9/decimal/decimal" + textual header "/usr/include/c++/9/decimal/decimal.h" + textual header "/usr/include/c++/9/deque" + textual header "/usr/include/c++/9/exception" + textual header "/usr/include/c++/9/execution" + textual header "/usr/include/c++/9/experimental/algorithm" + textual header "/usr/include/c++/9/experimental/any" + textual header "/usr/include/c++/9/experimental/array" + textual header "/usr/include/c++/9/experimental/bits/fs_dir.h" + textual header "/usr/include/c++/9/experimental/bits/fs_fwd.h" + textual header "/usr/include/c++/9/experimental/bits/fs_ops.h" + textual header "/usr/include/c++/9/experimental/bits/fs_path.h" + textual header "/usr/include/c++/9/experimental/bits/lfts_config.h" + textual header "/usr/include/c++/9/experimental/bits/net.h" + textual header "/usr/include/c++/9/experimental/bits/shared_ptr.h" + textual header "/usr/include/c++/9/experimental/bits/string_view.tcc" + textual header "/usr/include/c++/9/experimental/buffer" + textual header "/usr/include/c++/9/experimental/chrono" + textual header "/usr/include/c++/9/experimental/deque" + textual header "/usr/include/c++/9/experimental/executor" + textual header "/usr/include/c++/9/experimental/filesystem" + textual header "/usr/include/c++/9/experimental/forward_list" + textual header "/usr/include/c++/9/experimental/functional" + textual header "/usr/include/c++/9/experimental/internet" + textual header "/usr/include/c++/9/experimental/io_context" + textual header "/usr/include/c++/9/experimental/iterator" + textual header "/usr/include/c++/9/experimental/list" + textual header "/usr/include/c++/9/experimental/map" + textual header "/usr/include/c++/9/experimental/memory" + textual header "/usr/include/c++/9/experimental/memory_resource" + textual header "/usr/include/c++/9/experimental/net" + textual header "/usr/include/c++/9/experimental/netfwd" + textual header "/usr/include/c++/9/experimental/numeric" + textual header "/usr/include/c++/9/experimental/optional" + textual header "/usr/include/c++/9/experimental/propagate_const" + textual header "/usr/include/c++/9/experimental/random" + textual header "/usr/include/c++/9/experimental/ratio" + textual header "/usr/include/c++/9/experimental/regex" + textual header "/usr/include/c++/9/experimental/set" + textual header "/usr/include/c++/9/experimental/socket" + textual header "/usr/include/c++/9/experimental/source_location" + textual header "/usr/include/c++/9/experimental/string" + textual header "/usr/include/c++/9/experimental/string_view" + textual header "/usr/include/c++/9/experimental/system_error" + textual header "/usr/include/c++/9/experimental/timer" + textual header "/usr/include/c++/9/experimental/tuple" + textual header "/usr/include/c++/9/experimental/type_traits" + textual header "/usr/include/c++/9/experimental/unordered_map" + textual header "/usr/include/c++/9/experimental/unordered_set" + textual header "/usr/include/c++/9/experimental/utility" + textual header "/usr/include/c++/9/experimental/vector" + textual header "/usr/include/c++/9/ext/algorithm" + textual header "/usr/include/c++/9/ext/aligned_buffer.h" + textual header "/usr/include/c++/9/ext/alloc_traits.h" + textual header "/usr/include/c++/9/ext/array_allocator.h" + textual header "/usr/include/c++/9/ext/atomicity.h" + textual header "/usr/include/c++/9/ext/bitmap_allocator.h" + textual header "/usr/include/c++/9/ext/cast.h" + textual header "/usr/include/c++/9/ext/cmath" + textual header "/usr/include/c++/9/ext/codecvt_specializations.h" + textual header "/usr/include/c++/9/ext/concurrence.h" + textual header "/usr/include/c++/9/ext/debug_allocator.h" + textual header "/usr/include/c++/9/ext/enc_filebuf.h" + textual header "/usr/include/c++/9/ext/extptr_allocator.h" + textual header "/usr/include/c++/9/ext/functional" + textual header "/usr/include/c++/9/ext/hash_map" + textual header "/usr/include/c++/9/ext/hash_set" + textual header "/usr/include/c++/9/ext/iterator" + textual header "/usr/include/c++/9/ext/malloc_allocator.h" + textual header "/usr/include/c++/9/ext/memory" + textual header "/usr/include/c++/9/ext/mt_allocator.h" + textual header "/usr/include/c++/9/ext/new_allocator.h" + textual header "/usr/include/c++/9/ext/numeric" + textual header "/usr/include/c++/9/ext/numeric_traits.h" + textual header "/usr/include/c++/9/ext/pb_ds/assoc_container.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/entry_pred.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/resize_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/branch_policy/branch_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/branch_policy/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cond_dealtor.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/container_base_dispatch.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/debug_map_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/eq_fn/eq_by_less.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/lu_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/priority_queue_base_dispatch.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/node.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/node.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/standard_policies.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_trace_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/type_utils.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/types_traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/exception.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/hash_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/list_update_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/priority_queue.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/tag_and_trait.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/tree_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/trie_policy.hpp" + textual header "/usr/include/c++/9/ext/pod_char_traits.h" + textual header "/usr/include/c++/9/ext/pointer.h" + textual header "/usr/include/c++/9/ext/pool_allocator.h" + textual header "/usr/include/c++/9/ext/random" + textual header "/usr/include/c++/9/ext/random.tcc" + textual header "/usr/include/c++/9/ext/rb_tree" + textual header "/usr/include/c++/9/ext/rc_string_base.h" + textual header "/usr/include/c++/9/ext/rope" + textual header "/usr/include/c++/9/ext/ropeimpl.h" + textual header "/usr/include/c++/9/ext/slist" + textual header "/usr/include/c++/9/ext/sso_string_base.h" + textual header "/usr/include/c++/9/ext/stdio_filebuf.h" + textual header "/usr/include/c++/9/ext/stdio_sync_filebuf.h" + textual header "/usr/include/c++/9/ext/string_conversions.h" + textual header "/usr/include/c++/9/ext/throw_allocator.h" + textual header "/usr/include/c++/9/ext/type_traits.h" + textual header "/usr/include/c++/9/ext/typelist.h" + textual header "/usr/include/c++/9/ext/vstring.h" + textual header "/usr/include/c++/9/ext/vstring.tcc" + textual header "/usr/include/c++/9/ext/vstring_fwd.h" + textual header "/usr/include/c++/9/ext/vstring_util.h" + textual header "/usr/include/c++/9/fenv.h" + textual header "/usr/include/c++/9/filesystem" + textual header "/usr/include/c++/9/forward_list" + textual header "/usr/include/c++/9/fstream" + textual header "/usr/include/c++/9/functional" + textual header "/usr/include/c++/9/future" + textual header "/usr/include/c++/9/initializer_list" + textual header "/usr/include/c++/9/iomanip" + textual header "/usr/include/c++/9/ios" + textual header "/usr/include/c++/9/iosfwd" + textual header "/usr/include/c++/9/iostream" + textual header "/usr/include/c++/9/istream" + textual header "/usr/include/c++/9/iterator" + textual header "/usr/include/c++/9/limits" + textual header "/usr/include/c++/9/list" + textual header "/usr/include/c++/9/locale" + textual header "/usr/include/c++/9/map" + textual header "/usr/include/c++/9/math.h" + textual header "/usr/include/c++/9/memory" + textual header "/usr/include/c++/9/memory_resource" + textual header "/usr/include/c++/9/mutex" + textual header "/usr/include/c++/9/new" + textual header "/usr/include/c++/9/numeric" + textual header "/usr/include/c++/9/optional" + textual header "/usr/include/c++/9/ostream" + textual header "/usr/include/c++/9/parallel/algo.h" + textual header "/usr/include/c++/9/parallel/algobase.h" + textual header "/usr/include/c++/9/parallel/algorithm" + textual header "/usr/include/c++/9/parallel/algorithmfwd.h" + textual header "/usr/include/c++/9/parallel/balanced_quicksort.h" + textual header "/usr/include/c++/9/parallel/base.h" + textual header "/usr/include/c++/9/parallel/basic_iterator.h" + textual header "/usr/include/c++/9/parallel/checkers.h" + textual header "/usr/include/c++/9/parallel/compatibility.h" + textual header "/usr/include/c++/9/parallel/compiletime_settings.h" + textual header "/usr/include/c++/9/parallel/equally_split.h" + textual header "/usr/include/c++/9/parallel/features.h" + textual header "/usr/include/c++/9/parallel/find.h" + textual header "/usr/include/c++/9/parallel/find_selectors.h" + textual header "/usr/include/c++/9/parallel/for_each.h" + textual header "/usr/include/c++/9/parallel/for_each_selectors.h" + textual header "/usr/include/c++/9/parallel/iterator.h" + textual header "/usr/include/c++/9/parallel/list_partition.h" + textual header "/usr/include/c++/9/parallel/losertree.h" + textual header "/usr/include/c++/9/parallel/merge.h" + textual header "/usr/include/c++/9/parallel/multiseq_selection.h" + textual header "/usr/include/c++/9/parallel/multiway_merge.h" + textual header "/usr/include/c++/9/parallel/multiway_mergesort.h" + textual header "/usr/include/c++/9/parallel/numeric" + textual header "/usr/include/c++/9/parallel/numericfwd.h" + textual header "/usr/include/c++/9/parallel/omp_loop.h" + textual header "/usr/include/c++/9/parallel/omp_loop_static.h" + textual header "/usr/include/c++/9/parallel/par_loop.h" + textual header "/usr/include/c++/9/parallel/parallel.h" + textual header "/usr/include/c++/9/parallel/partial_sum.h" + textual header "/usr/include/c++/9/parallel/partition.h" + textual header "/usr/include/c++/9/parallel/queue.h" + textual header "/usr/include/c++/9/parallel/quicksort.h" + textual header "/usr/include/c++/9/parallel/random_number.h" + textual header "/usr/include/c++/9/parallel/random_shuffle.h" + textual header "/usr/include/c++/9/parallel/search.h" + textual header "/usr/include/c++/9/parallel/set_operations.h" + textual header "/usr/include/c++/9/parallel/settings.h" + textual header "/usr/include/c++/9/parallel/sort.h" + textual header "/usr/include/c++/9/parallel/tags.h" + textual header "/usr/include/c++/9/parallel/types.h" + textual header "/usr/include/c++/9/parallel/unique_copy.h" + textual header "/usr/include/c++/9/parallel/workstealing.h" + textual header "/usr/include/c++/9/profile/array" + textual header "/usr/include/c++/9/profile/base.h" + textual header "/usr/include/c++/9/profile/bitset" + textual header "/usr/include/c++/9/profile/deque" + textual header "/usr/include/c++/9/profile/forward_list" + textual header "/usr/include/c++/9/profile/impl/profiler.h" + textual header "/usr/include/c++/9/profile/impl/profiler_algos.h" + textual header "/usr/include/c++/9/profile/impl/profiler_container_size.h" + textual header "/usr/include/c++/9/profile/impl/profiler_hash_func.h" + textual header "/usr/include/c++/9/profile/impl/profiler_hashtable_size.h" + textual header "/usr/include/c++/9/profile/impl/profiler_list_to_slist.h" + textual header "/usr/include/c++/9/profile/impl/profiler_list_to_vector.h" + textual header "/usr/include/c++/9/profile/impl/profiler_map_to_unordered_map.h" + textual header "/usr/include/c++/9/profile/impl/profiler_node.h" + textual header "/usr/include/c++/9/profile/impl/profiler_state.h" + textual header "/usr/include/c++/9/profile/impl/profiler_trace.h" + textual header "/usr/include/c++/9/profile/impl/profiler_vector_size.h" + textual header "/usr/include/c++/9/profile/impl/profiler_vector_to_list.h" + textual header "/usr/include/c++/9/profile/iterator_tracker.h" + textual header "/usr/include/c++/9/profile/list" + textual header "/usr/include/c++/9/profile/map" + textual header "/usr/include/c++/9/profile/map.h" + textual header "/usr/include/c++/9/profile/multimap.h" + textual header "/usr/include/c++/9/profile/multiset.h" + textual header "/usr/include/c++/9/profile/ordered_base.h" + textual header "/usr/include/c++/9/profile/set" + textual header "/usr/include/c++/9/profile/set.h" + textual header "/usr/include/c++/9/profile/unordered_base.h" + textual header "/usr/include/c++/9/profile/unordered_map" + textual header "/usr/include/c++/9/profile/unordered_set" + textual header "/usr/include/c++/9/profile/vector" + textual header "/usr/include/c++/9/pstl/algorithm_fwd.h" + textual header "/usr/include/c++/9/pstl/algorithm_impl.h" + textual header "/usr/include/c++/9/pstl/execution_defs.h" + textual header "/usr/include/c++/9/pstl/execution_impl.h" + textual header "/usr/include/c++/9/pstl/glue_algorithm_defs.h" + textual header "/usr/include/c++/9/pstl/glue_algorithm_impl.h" + textual header "/usr/include/c++/9/pstl/glue_execution_defs.h" + textual header "/usr/include/c++/9/pstl/glue_memory_defs.h" + textual header "/usr/include/c++/9/pstl/glue_memory_impl.h" + textual header "/usr/include/c++/9/pstl/glue_numeric_defs.h" + textual header "/usr/include/c++/9/pstl/glue_numeric_impl.h" + textual header "/usr/include/c++/9/pstl/memory_impl.h" + textual header "/usr/include/c++/9/pstl/numeric_fwd.h" + textual header "/usr/include/c++/9/pstl/numeric_impl.h" + textual header "/usr/include/c++/9/pstl/parallel_backend.h" + textual header "/usr/include/c++/9/pstl/parallel_backend_tbb.h" + textual header "/usr/include/c++/9/pstl/parallel_backend_utils.h" + textual header "/usr/include/c++/9/pstl/parallel_impl.h" + textual header "/usr/include/c++/9/pstl/pstl_config.h" + textual header "/usr/include/c++/9/pstl/unseq_backend_simd.h" + textual header "/usr/include/c++/9/pstl/utils.h" + textual header "/usr/include/c++/9/queue" + textual header "/usr/include/c++/9/random" + textual header "/usr/include/c++/9/ratio" + textual header "/usr/include/c++/9/regex" + textual header "/usr/include/c++/9/scoped_allocator" + textual header "/usr/include/c++/9/set" + textual header "/usr/include/c++/9/shared_mutex" + textual header "/usr/include/c++/9/sstream" + textual header "/usr/include/c++/9/stack" + textual header "/usr/include/c++/9/stdexcept" + textual header "/usr/include/c++/9/stdlib.h" + textual header "/usr/include/c++/9/streambuf" + textual header "/usr/include/c++/9/string" + textual header "/usr/include/c++/9/string_view" + textual header "/usr/include/c++/9/system_error" + textual header "/usr/include/c++/9/tgmath.h" + textual header "/usr/include/c++/9/thread" + textual header "/usr/include/c++/9/tr1/array" + textual header "/usr/include/c++/9/tr1/bessel_function.tcc" + textual header "/usr/include/c++/9/tr1/beta_function.tcc" + textual header "/usr/include/c++/9/tr1/ccomplex" + textual header "/usr/include/c++/9/tr1/cctype" + textual header "/usr/include/c++/9/tr1/cfenv" + textual header "/usr/include/c++/9/tr1/cfloat" + textual header "/usr/include/c++/9/tr1/cinttypes" + textual header "/usr/include/c++/9/tr1/climits" + textual header "/usr/include/c++/9/tr1/cmath" + textual header "/usr/include/c++/9/tr1/complex" + textual header "/usr/include/c++/9/tr1/complex.h" + textual header "/usr/include/c++/9/tr1/cstdarg" + textual header "/usr/include/c++/9/tr1/cstdbool" + textual header "/usr/include/c++/9/tr1/cstdint" + textual header "/usr/include/c++/9/tr1/cstdio" + textual header "/usr/include/c++/9/tr1/cstdlib" + textual header "/usr/include/c++/9/tr1/ctgmath" + textual header "/usr/include/c++/9/tr1/ctime" + textual header "/usr/include/c++/9/tr1/ctype.h" + textual header "/usr/include/c++/9/tr1/cwchar" + textual header "/usr/include/c++/9/tr1/cwctype" + textual header "/usr/include/c++/9/tr1/ell_integral.tcc" + textual header "/usr/include/c++/9/tr1/exp_integral.tcc" + textual header "/usr/include/c++/9/tr1/fenv.h" + textual header "/usr/include/c++/9/tr1/float.h" + textual header "/usr/include/c++/9/tr1/functional" + textual header "/usr/include/c++/9/tr1/functional_hash.h" + textual header "/usr/include/c++/9/tr1/gamma.tcc" + textual header "/usr/include/c++/9/tr1/hashtable.h" + textual header "/usr/include/c++/9/tr1/hashtable_policy.h" + textual header "/usr/include/c++/9/tr1/hypergeometric.tcc" + textual header "/usr/include/c++/9/tr1/inttypes.h" + textual header "/usr/include/c++/9/tr1/legendre_function.tcc" + textual header "/usr/include/c++/9/tr1/limits.h" + textual header "/usr/include/c++/9/tr1/math.h" + textual header "/usr/include/c++/9/tr1/memory" + textual header "/usr/include/c++/9/tr1/modified_bessel_func.tcc" + textual header "/usr/include/c++/9/tr1/poly_hermite.tcc" + textual header "/usr/include/c++/9/tr1/poly_laguerre.tcc" + textual header "/usr/include/c++/9/tr1/random" + textual header "/usr/include/c++/9/tr1/random.h" + textual header "/usr/include/c++/9/tr1/random.tcc" + textual header "/usr/include/c++/9/tr1/regex" + textual header "/usr/include/c++/9/tr1/riemann_zeta.tcc" + textual header "/usr/include/c++/9/tr1/shared_ptr.h" + textual header "/usr/include/c++/9/tr1/special_function_util.h" + textual header "/usr/include/c++/9/tr1/stdarg.h" + textual header "/usr/include/c++/9/tr1/stdbool.h" + textual header "/usr/include/c++/9/tr1/stdint.h" + textual header "/usr/include/c++/9/tr1/stdio.h" + textual header "/usr/include/c++/9/tr1/stdlib.h" + textual header "/usr/include/c++/9/tr1/tgmath.h" + textual header "/usr/include/c++/9/tr1/tuple" + textual header "/usr/include/c++/9/tr1/type_traits" + textual header "/usr/include/c++/9/tr1/unordered_map" + textual header "/usr/include/c++/9/tr1/unordered_map.h" + textual header "/usr/include/c++/9/tr1/unordered_set" + textual header "/usr/include/c++/9/tr1/unordered_set.h" + textual header "/usr/include/c++/9/tr1/utility" + textual header "/usr/include/c++/9/tr1/wchar.h" + textual header "/usr/include/c++/9/tr1/wctype.h" + textual header "/usr/include/c++/9/tr2/bool_set" + textual header "/usr/include/c++/9/tr2/bool_set.tcc" + textual header "/usr/include/c++/9/tr2/dynamic_bitset" + textual header "/usr/include/c++/9/tr2/dynamic_bitset.tcc" + textual header "/usr/include/c++/9/tr2/ratio" + textual header "/usr/include/c++/9/tr2/type_traits" + textual header "/usr/include/c++/9/tuple" + textual header "/usr/include/c++/9/type_traits" + textual header "/usr/include/c++/9/typeindex" + textual header "/usr/include/c++/9/typeinfo" + textual header "/usr/include/c++/9/unordered_map" + textual header "/usr/include/c++/9/unordered_set" + textual header "/usr/include/c++/9/utility" + textual header "/usr/include/c++/9/valarray" + textual header "/usr/include/c++/9/variant" + textual header "/usr/include/c++/9/vector" + textual header "/usr/include/c++/9/version" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_builtin_vars.h" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_cmath.h" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_complex_builtins.h" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_device_functions.h" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_intrinsics.h" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_libdevice_declares.h" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_math_forward_declares.h" + textual header "/usr/include/clang/10.0.0/include/__clang_cuda_runtime_wrapper.h" + textual header "/usr/include/clang/10.0.0/include/__stddef_max_align_t.h" + textual header "/usr/include/clang/10.0.0/include/__wmmintrin_aes.h" + textual header "/usr/include/clang/10.0.0/include/__wmmintrin_pclmul.h" + textual header "/usr/include/clang/10.0.0/include/adxintrin.h" + textual header "/usr/include/clang/10.0.0/include/altivec.h" + textual header "/usr/include/clang/10.0.0/include/ammintrin.h" + textual header "/usr/include/clang/10.0.0/include/arm64intr.h" + textual header "/usr/include/clang/10.0.0/include/arm_acle.h" + textual header "/usr/include/clang/10.0.0/include/arm_cmse.h" + textual header "/usr/include/clang/10.0.0/include/arm_fp16.h" + textual header "/usr/include/clang/10.0.0/include/arm_mve.h" + textual header "/usr/include/clang/10.0.0/include/arm_neon.h" + textual header "/usr/include/clang/10.0.0/include/armintr.h" + textual header "/usr/include/clang/10.0.0/include/avx2intrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512bf16intrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512bitalgintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512bwintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512cdintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512dqintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512erintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512fintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512ifmaintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512ifmavlintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512pfintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vbmi2intrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vbmiintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vbmivlintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlbf16intrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlbitalgintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlbwintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlcdintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vldqintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlvbmi2intrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlvnniintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vlvp2intersectintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vnniintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vp2intersectintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vpopcntdqintrin.h" + textual header "/usr/include/clang/10.0.0/include/avx512vpopcntdqvlintrin.h" + textual header "/usr/include/clang/10.0.0/include/avxintrin.h" + textual header "/usr/include/clang/10.0.0/include/bmi2intrin.h" + textual header "/usr/include/clang/10.0.0/include/bmiintrin.h" + textual header "/usr/include/clang/10.0.0/include/cetintrin.h" + textual header "/usr/include/clang/10.0.0/include/cldemoteintrin.h" + textual header "/usr/include/clang/10.0.0/include/clflushoptintrin.h" + textual header "/usr/include/clang/10.0.0/include/clwbintrin.h" + textual header "/usr/include/clang/10.0.0/include/clzerointrin.h" + textual header "/usr/include/clang/10.0.0/include/cpuid.h" + textual header "/usr/include/clang/10.0.0/include/cuda_wrappers/algorithm" + textual header "/usr/include/clang/10.0.0/include/cuda_wrappers/complex" + textual header "/usr/include/clang/10.0.0/include/cuda_wrappers/new" + textual header "/usr/include/clang/10.0.0/include/emmintrin.h" + textual header "/usr/include/clang/10.0.0/include/enqcmdintrin.h" + textual header "/usr/include/clang/10.0.0/include/f16cintrin.h" + textual header "/usr/include/clang/10.0.0/include/float.h" + textual header "/usr/include/clang/10.0.0/include/fma4intrin.h" + textual header "/usr/include/clang/10.0.0/include/fmaintrin.h" + textual header "/usr/include/clang/10.0.0/include/fuzzer/FuzzedDataProvider.h" + textual header "/usr/include/clang/10.0.0/include/fxsrintrin.h" + textual header "/usr/include/clang/10.0.0/include/gfniintrin.h" + textual header "/usr/include/clang/10.0.0/include/htmintrin.h" + textual header "/usr/include/clang/10.0.0/include/htmxlintrin.h" + textual header "/usr/include/clang/10.0.0/include/ia32intrin.h" + textual header "/usr/include/clang/10.0.0/include/immintrin.h" + textual header "/usr/include/clang/10.0.0/include/intrin.h" + textual header "/usr/include/clang/10.0.0/include/inttypes.h" + textual header "/usr/include/clang/10.0.0/include/invpcidintrin.h" + textual header "/usr/include/clang/10.0.0/include/iso646.h" + textual header "/usr/include/clang/10.0.0/include/limits.h" + textual header "/usr/include/clang/10.0.0/include/lwpintrin.h" + textual header "/usr/include/clang/10.0.0/include/lzcntintrin.h" + textual header "/usr/include/clang/10.0.0/include/mm3dnow.h" + textual header "/usr/include/clang/10.0.0/include/mm_malloc.h" + textual header "/usr/include/clang/10.0.0/include/mmintrin.h" + textual header "/usr/include/clang/10.0.0/include/module.modulemap" + textual header "/usr/include/clang/10.0.0/include/movdirintrin.h" + textual header "/usr/include/clang/10.0.0/include/msa.h" + textual header "/usr/include/clang/10.0.0/include/mwaitxintrin.h" + textual header "/usr/include/clang/10.0.0/include/nmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/omp-tools.h" + textual header "/usr/include/clang/10.0.0/include/omp.h" + textual header "/usr/include/clang/10.0.0/include/ompt.h" + textual header "/usr/include/clang/10.0.0/include/opencl-c-base.h" + textual header "/usr/include/clang/10.0.0/include/opencl-c.h" + textual header "/usr/include/clang/10.0.0/include/openmp_wrappers/__clang_openmp_math.h" + textual header "/usr/include/clang/10.0.0/include/openmp_wrappers/__clang_openmp_math_declares.h" + textual header "/usr/include/clang/10.0.0/include/openmp_wrappers/cmath" + textual header "/usr/include/clang/10.0.0/include/openmp_wrappers/math.h" + textual header "/usr/include/clang/10.0.0/include/pconfigintrin.h" + textual header "/usr/include/clang/10.0.0/include/pkuintrin.h" + textual header "/usr/include/clang/10.0.0/include/pmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/popcntintrin.h" + textual header "/usr/include/clang/10.0.0/include/ppc_wrappers/emmintrin.h" + textual header "/usr/include/clang/10.0.0/include/ppc_wrappers/mm_malloc.h" + textual header "/usr/include/clang/10.0.0/include/ppc_wrappers/mmintrin.h" + textual header "/usr/include/clang/10.0.0/include/ppc_wrappers/pmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/ppc_wrappers/smmintrin.h" + textual header "/usr/include/clang/10.0.0/include/ppc_wrappers/tmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/ppc_wrappers/xmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/prfchwintrin.h" + textual header "/usr/include/clang/10.0.0/include/profile/InstrProfData.inc" + textual header "/usr/include/clang/10.0.0/include/ptwriteintrin.h" + textual header "/usr/include/clang/10.0.0/include/rdseedintrin.h" + textual header "/usr/include/clang/10.0.0/include/rtmintrin.h" + textual header "/usr/include/clang/10.0.0/include/s390intrin.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/allocator_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/asan_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/common_interface_defs.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/coverage_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/dfsan_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/hwasan_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/linux_syscall_hooks.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/lsan_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/msan_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/netbsd_syscall_hooks.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/scudo_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/tsan_interface.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/tsan_interface_atomic.h" + textual header "/usr/include/clang/10.0.0/include/sanitizer/ubsan_interface.h" + textual header "/usr/include/clang/10.0.0/include/sgxintrin.h" + textual header "/usr/include/clang/10.0.0/include/shaintrin.h" + textual header "/usr/include/clang/10.0.0/include/smmintrin.h" + textual header "/usr/include/clang/10.0.0/include/stdalign.h" + textual header "/usr/include/clang/10.0.0/include/stdarg.h" + textual header "/usr/include/clang/10.0.0/include/stdatomic.h" + textual header "/usr/include/clang/10.0.0/include/stdbool.h" + textual header "/usr/include/clang/10.0.0/include/stddef.h" + textual header "/usr/include/clang/10.0.0/include/stdint.h" + textual header "/usr/include/clang/10.0.0/include/stdnoreturn.h" + textual header "/usr/include/clang/10.0.0/include/tbmintrin.h" + textual header "/usr/include/clang/10.0.0/include/tgmath.h" + textual header "/usr/include/clang/10.0.0/include/tmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/unwind.h" + textual header "/usr/include/clang/10.0.0/include/vadefs.h" + textual header "/usr/include/clang/10.0.0/include/vaesintrin.h" + textual header "/usr/include/clang/10.0.0/include/varargs.h" + textual header "/usr/include/clang/10.0.0/include/vecintrin.h" + textual header "/usr/include/clang/10.0.0/include/vpclmulqdqintrin.h" + textual header "/usr/include/clang/10.0.0/include/waitpkgintrin.h" + textual header "/usr/include/clang/10.0.0/include/wbnoinvdintrin.h" + textual header "/usr/include/clang/10.0.0/include/wmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/x86intrin.h" + textual header "/usr/include/clang/10.0.0/include/xmmintrin.h" + textual header "/usr/include/clang/10.0.0/include/xopintrin.h" + textual header "/usr/include/clang/10.0.0/include/xray/xray_interface.h" + textual header "/usr/include/clang/10.0.0/include/xray/xray_log_interface.h" + textual header "/usr/include/clang/10.0.0/include/xray/xray_records.h" + textual header "/usr/include/clang/10.0.0/include/xsavecintrin.h" + textual header "/usr/include/clang/10.0.0/include/xsaveintrin.h" + textual header "/usr/include/clang/10.0.0/include/xsaveoptintrin.h" + textual header "/usr/include/clang/10.0.0/include/xsavesintrin.h" + textual header "/usr/include/clang/10.0.0/include/xtestintrin.h" + textual header "/usr/include/clang/10/include/__clang_cuda_builtin_vars.h" + textual header "/usr/include/clang/10/include/__clang_cuda_cmath.h" + textual header "/usr/include/clang/10/include/__clang_cuda_complex_builtins.h" + textual header "/usr/include/clang/10/include/__clang_cuda_device_functions.h" + textual header "/usr/include/clang/10/include/__clang_cuda_intrinsics.h" + textual header "/usr/include/clang/10/include/__clang_cuda_libdevice_declares.h" + textual header "/usr/include/clang/10/include/__clang_cuda_math_forward_declares.h" + textual header "/usr/include/clang/10/include/__clang_cuda_runtime_wrapper.h" + textual header "/usr/include/clang/10/include/__stddef_max_align_t.h" + textual header "/usr/include/clang/10/include/__wmmintrin_aes.h" + textual header "/usr/include/clang/10/include/__wmmintrin_pclmul.h" + textual header "/usr/include/clang/10/include/adxintrin.h" + textual header "/usr/include/clang/10/include/altivec.h" + textual header "/usr/include/clang/10/include/ammintrin.h" + textual header "/usr/include/clang/10/include/arm64intr.h" + textual header "/usr/include/clang/10/include/arm_acle.h" + textual header "/usr/include/clang/10/include/arm_cmse.h" + textual header "/usr/include/clang/10/include/arm_fp16.h" + textual header "/usr/include/clang/10/include/arm_mve.h" + textual header "/usr/include/clang/10/include/arm_neon.h" + textual header "/usr/include/clang/10/include/armintr.h" + textual header "/usr/include/clang/10/include/avx2intrin.h" + textual header "/usr/include/clang/10/include/avx512bf16intrin.h" + textual header "/usr/include/clang/10/include/avx512bitalgintrin.h" + textual header "/usr/include/clang/10/include/avx512bwintrin.h" + textual header "/usr/include/clang/10/include/avx512cdintrin.h" + textual header "/usr/include/clang/10/include/avx512dqintrin.h" + textual header "/usr/include/clang/10/include/avx512erintrin.h" + textual header "/usr/include/clang/10/include/avx512fintrin.h" + textual header "/usr/include/clang/10/include/avx512ifmaintrin.h" + textual header "/usr/include/clang/10/include/avx512ifmavlintrin.h" + textual header "/usr/include/clang/10/include/avx512pfintrin.h" + textual header "/usr/include/clang/10/include/avx512vbmi2intrin.h" + textual header "/usr/include/clang/10/include/avx512vbmiintrin.h" + textual header "/usr/include/clang/10/include/avx512vbmivlintrin.h" + textual header "/usr/include/clang/10/include/avx512vlbf16intrin.h" + textual header "/usr/include/clang/10/include/avx512vlbitalgintrin.h" + textual header "/usr/include/clang/10/include/avx512vlbwintrin.h" + textual header "/usr/include/clang/10/include/avx512vlcdintrin.h" + textual header "/usr/include/clang/10/include/avx512vldqintrin.h" + textual header "/usr/include/clang/10/include/avx512vlintrin.h" + textual header "/usr/include/clang/10/include/avx512vlvbmi2intrin.h" + textual header "/usr/include/clang/10/include/avx512vlvnniintrin.h" + textual header "/usr/include/clang/10/include/avx512vlvp2intersectintrin.h" + textual header "/usr/include/clang/10/include/avx512vnniintrin.h" + textual header "/usr/include/clang/10/include/avx512vp2intersectintrin.h" + textual header "/usr/include/clang/10/include/avx512vpopcntdqintrin.h" + textual header "/usr/include/clang/10/include/avx512vpopcntdqvlintrin.h" + textual header "/usr/include/clang/10/include/avxintrin.h" + textual header "/usr/include/clang/10/include/bmi2intrin.h" + textual header "/usr/include/clang/10/include/bmiintrin.h" + textual header "/usr/include/clang/10/include/cetintrin.h" + textual header "/usr/include/clang/10/include/cldemoteintrin.h" + textual header "/usr/include/clang/10/include/clflushoptintrin.h" + textual header "/usr/include/clang/10/include/clwbintrin.h" + textual header "/usr/include/clang/10/include/clzerointrin.h" + textual header "/usr/include/clang/10/include/cpuid.h" + textual header "/usr/include/clang/10/include/cuda_wrappers/algorithm" + textual header "/usr/include/clang/10/include/cuda_wrappers/complex" + textual header "/usr/include/clang/10/include/cuda_wrappers/new" + textual header "/usr/include/clang/10/include/emmintrin.h" + textual header "/usr/include/clang/10/include/enqcmdintrin.h" + textual header "/usr/include/clang/10/include/f16cintrin.h" + textual header "/usr/include/clang/10/include/float.h" + textual header "/usr/include/clang/10/include/fma4intrin.h" + textual header "/usr/include/clang/10/include/fmaintrin.h" + textual header "/usr/include/clang/10/include/fuzzer/FuzzedDataProvider.h" + textual header "/usr/include/clang/10/include/fxsrintrin.h" + textual header "/usr/include/clang/10/include/gfniintrin.h" + textual header "/usr/include/clang/10/include/htmintrin.h" + textual header "/usr/include/clang/10/include/htmxlintrin.h" + textual header "/usr/include/clang/10/include/ia32intrin.h" + textual header "/usr/include/clang/10/include/immintrin.h" + textual header "/usr/include/clang/10/include/intrin.h" + textual header "/usr/include/clang/10/include/inttypes.h" + textual header "/usr/include/clang/10/include/invpcidintrin.h" + textual header "/usr/include/clang/10/include/iso646.h" + textual header "/usr/include/clang/10/include/limits.h" + textual header "/usr/include/clang/10/include/lwpintrin.h" + textual header "/usr/include/clang/10/include/lzcntintrin.h" + textual header "/usr/include/clang/10/include/mm3dnow.h" + textual header "/usr/include/clang/10/include/mm_malloc.h" + textual header "/usr/include/clang/10/include/mmintrin.h" + textual header "/usr/include/clang/10/include/module.modulemap" + textual header "/usr/include/clang/10/include/movdirintrin.h" + textual header "/usr/include/clang/10/include/msa.h" + textual header "/usr/include/clang/10/include/mwaitxintrin.h" + textual header "/usr/include/clang/10/include/nmmintrin.h" + textual header "/usr/include/clang/10/include/omp-tools.h" + textual header "/usr/include/clang/10/include/omp.h" + textual header "/usr/include/clang/10/include/ompt.h" + textual header "/usr/include/clang/10/include/opencl-c-base.h" + textual header "/usr/include/clang/10/include/opencl-c.h" + textual header "/usr/include/clang/10/include/openmp_wrappers/__clang_openmp_math.h" + textual header "/usr/include/clang/10/include/openmp_wrappers/__clang_openmp_math_declares.h" + textual header "/usr/include/clang/10/include/openmp_wrappers/cmath" + textual header "/usr/include/clang/10/include/openmp_wrappers/math.h" + textual header "/usr/include/clang/10/include/pconfigintrin.h" + textual header "/usr/include/clang/10/include/pkuintrin.h" + textual header "/usr/include/clang/10/include/pmmintrin.h" + textual header "/usr/include/clang/10/include/popcntintrin.h" + textual header "/usr/include/clang/10/include/ppc_wrappers/emmintrin.h" + textual header "/usr/include/clang/10/include/ppc_wrappers/mm_malloc.h" + textual header "/usr/include/clang/10/include/ppc_wrappers/mmintrin.h" + textual header "/usr/include/clang/10/include/ppc_wrappers/pmmintrin.h" + textual header "/usr/include/clang/10/include/ppc_wrappers/smmintrin.h" + textual header "/usr/include/clang/10/include/ppc_wrappers/tmmintrin.h" + textual header "/usr/include/clang/10/include/ppc_wrappers/xmmintrin.h" + textual header "/usr/include/clang/10/include/prfchwintrin.h" + textual header "/usr/include/clang/10/include/profile/InstrProfData.inc" + textual header "/usr/include/clang/10/include/ptwriteintrin.h" + textual header "/usr/include/clang/10/include/rdseedintrin.h" + textual header "/usr/include/clang/10/include/rtmintrin.h" + textual header "/usr/include/clang/10/include/s390intrin.h" + textual header "/usr/include/clang/10/include/sanitizer/allocator_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/asan_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/common_interface_defs.h" + textual header "/usr/include/clang/10/include/sanitizer/coverage_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/dfsan_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/hwasan_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/linux_syscall_hooks.h" + textual header "/usr/include/clang/10/include/sanitizer/lsan_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/msan_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/netbsd_syscall_hooks.h" + textual header "/usr/include/clang/10/include/sanitizer/scudo_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/tsan_interface.h" + textual header "/usr/include/clang/10/include/sanitizer/tsan_interface_atomic.h" + textual header "/usr/include/clang/10/include/sanitizer/ubsan_interface.h" + textual header "/usr/include/clang/10/include/sgxintrin.h" + textual header "/usr/include/clang/10/include/shaintrin.h" + textual header "/usr/include/clang/10/include/smmintrin.h" + textual header "/usr/include/clang/10/include/stdalign.h" + textual header "/usr/include/clang/10/include/stdarg.h" + textual header "/usr/include/clang/10/include/stdatomic.h" + textual header "/usr/include/clang/10/include/stdbool.h" + textual header "/usr/include/clang/10/include/stddef.h" + textual header "/usr/include/clang/10/include/stdint.h" + textual header "/usr/include/clang/10/include/stdnoreturn.h" + textual header "/usr/include/clang/10/include/tbmintrin.h" + textual header "/usr/include/clang/10/include/tgmath.h" + textual header "/usr/include/clang/10/include/tmmintrin.h" + textual header "/usr/include/clang/10/include/unwind.h" + textual header "/usr/include/clang/10/include/vadefs.h" + textual header "/usr/include/clang/10/include/vaesintrin.h" + textual header "/usr/include/clang/10/include/varargs.h" + textual header "/usr/include/clang/10/include/vecintrin.h" + textual header "/usr/include/clang/10/include/vpclmulqdqintrin.h" + textual header "/usr/include/clang/10/include/waitpkgintrin.h" + textual header "/usr/include/clang/10/include/wbnoinvdintrin.h" + textual header "/usr/include/clang/10/include/wmmintrin.h" + textual header "/usr/include/clang/10/include/x86intrin.h" + textual header "/usr/include/clang/10/include/xmmintrin.h" + textual header "/usr/include/clang/10/include/xopintrin.h" + textual header "/usr/include/clang/10/include/xray/xray_interface.h" + textual header "/usr/include/clang/10/include/xray/xray_log_interface.h" + textual header "/usr/include/clang/10/include/xray/xray_records.h" + textual header "/usr/include/clang/10/include/xsavecintrin.h" + textual header "/usr/include/clang/10/include/xsaveintrin.h" + textual header "/usr/include/clang/10/include/xsaveoptintrin.h" + textual header "/usr/include/clang/10/include/xsavesintrin.h" + textual header "/usr/include/clang/10/include/xtestintrin.h" + textual header "/usr/include/complex.h" + textual header "/usr/include/cpio.h" + textual header "/usr/include/crypt.h" + textual header "/usr/include/ctype.h" + textual header "/usr/include/curses.h" + textual header "/usr/include/cursesapp.h" + textual header "/usr/include/cursesf.h" + textual header "/usr/include/cursesm.h" + textual header "/usr/include/cursesp.h" + textual header "/usr/include/cursesw.h" + textual header "/usr/include/cursslk.h" + textual header "/usr/include/dirent.h" + textual header "/usr/include/dlfcn.h" + textual header "/usr/include/drm/amdgpu_drm.h" + textual header "/usr/include/drm/armada_drm.h" + textual header "/usr/include/drm/drm.h" + textual header "/usr/include/drm/drm_fourcc.h" + textual header "/usr/include/drm/drm_mode.h" + textual header "/usr/include/drm/drm_sarea.h" + textual header "/usr/include/drm/etnaviv_drm.h" + textual header "/usr/include/drm/exynos_drm.h" + textual header "/usr/include/drm/i810_drm.h" + textual header "/usr/include/drm/i915_drm.h" + textual header "/usr/include/drm/lima_drm.h" + textual header "/usr/include/drm/mga_drm.h" + textual header "/usr/include/drm/msm_drm.h" + textual header "/usr/include/drm/nouveau_drm.h" + textual header "/usr/include/drm/omap_drm.h" + textual header "/usr/include/drm/panfrost_drm.h" + textual header "/usr/include/drm/qxl_drm.h" + textual header "/usr/include/drm/r128_drm.h" + textual header "/usr/include/drm/radeon_drm.h" + textual header "/usr/include/drm/savage_drm.h" + textual header "/usr/include/drm/sis_drm.h" + textual header "/usr/include/drm/tegra_drm.h" + textual header "/usr/include/drm/v3d_drm.h" + textual header "/usr/include/drm/vc4_drm.h" + textual header "/usr/include/drm/vgem_drm.h" + textual header "/usr/include/drm/via_drm.h" + textual header "/usr/include/drm/virtgpu_drm.h" + textual header "/usr/include/drm/vmwgfx_drm.h" + textual header "/usr/include/elf.h" + textual header "/usr/include/endian.h" + textual header "/usr/include/envz.h" + textual header "/usr/include/err.h" + textual header "/usr/include/errno.h" + textual header "/usr/include/error.h" + textual header "/usr/include/eti.h" + textual header "/usr/include/etip.h" + textual header "/usr/include/execinfo.h" + textual header "/usr/include/expat.h" + textual header "/usr/include/expat_external.h" + textual header "/usr/include/fcntl.h" + textual header "/usr/include/features.h" + textual header "/usr/include/fenv.h" + textual header "/usr/include/finclude/math-vector-fortran.h" + textual header "/usr/include/fmtmsg.h" + textual header "/usr/include/fnmatch.h" + textual header "/usr/include/form.h" + textual header "/usr/include/fstab.h" + textual header "/usr/include/fts.h" + textual header "/usr/include/ftw.h" + textual header "/usr/include/gconv.h" + textual header "/usr/include/getopt.h" + textual header "/usr/include/glob.h" + textual header "/usr/include/gnu-versions.h" + textual header "/usr/include/gnumake.h" + textual header "/usr/include/grp.h" + textual header "/usr/include/gshadow.h" + textual header "/usr/include/iconv.h" + textual header "/usr/include/ifaddrs.h" + textual header "/usr/include/inttypes.h" + textual header "/usr/include/iproute2/bpf_elf.h" + textual header "/usr/include/langinfo.h" + textual header "/usr/include/lastlog.h" + textual header "/usr/include/libgen.h" + textual header "/usr/include/libintl.h" + textual header "/usr/include/limits.h" + textual header "/usr/include/link.h" + textual header "/usr/include/linux/a.out.h" + textual header "/usr/include/linux/acct.h" + textual header "/usr/include/linux/adb.h" + textual header "/usr/include/linux/adfs_fs.h" + textual header "/usr/include/linux/affs_hardblocks.h" + textual header "/usr/include/linux/agpgart.h" + textual header "/usr/include/linux/aio_abi.h" + textual header "/usr/include/linux/am437x-vpfe.h" + textual header "/usr/include/linux/android/binder.h" + textual header "/usr/include/linux/android/binderfs.h" + textual header "/usr/include/linux/apm_bios.h" + textual header "/usr/include/linux/arcfb.h" + textual header "/usr/include/linux/arm_sdei.h" + textual header "/usr/include/linux/aspeed-lpc-ctrl.h" + textual header "/usr/include/linux/aspeed-p2a-ctrl.h" + textual header "/usr/include/linux/atalk.h" + textual header "/usr/include/linux/atm.h" + textual header "/usr/include/linux/atm_eni.h" + textual header "/usr/include/linux/atm_he.h" + textual header "/usr/include/linux/atm_idt77105.h" + textual header "/usr/include/linux/atm_nicstar.h" + textual header "/usr/include/linux/atm_tcp.h" + textual header "/usr/include/linux/atm_zatm.h" + textual header "/usr/include/linux/atmapi.h" + textual header "/usr/include/linux/atmarp.h" + textual header "/usr/include/linux/atmbr2684.h" + textual header "/usr/include/linux/atmclip.h" + textual header "/usr/include/linux/atmdev.h" + textual header "/usr/include/linux/atmioc.h" + textual header "/usr/include/linux/atmlec.h" + textual header "/usr/include/linux/atmmpc.h" + textual header "/usr/include/linux/atmppp.h" + textual header "/usr/include/linux/atmsap.h" + textual header "/usr/include/linux/atmsvc.h" + textual header "/usr/include/linux/audit.h" + textual header "/usr/include/linux/aufs_type.h" + textual header "/usr/include/linux/auto_dev-ioctl.h" + textual header "/usr/include/linux/auto_fs.h" + textual header "/usr/include/linux/auto_fs4.h" + textual header "/usr/include/linux/auxvec.h" + textual header "/usr/include/linux/ax25.h" + textual header "/usr/include/linux/b1lli.h" + textual header "/usr/include/linux/batadv_packet.h" + textual header "/usr/include/linux/batman_adv.h" + textual header "/usr/include/linux/baycom.h" + textual header "/usr/include/linux/bcache.h" + textual header "/usr/include/linux/bcm933xx_hcs.h" + textual header "/usr/include/linux/bfs_fs.h" + textual header "/usr/include/linux/binfmts.h" + textual header "/usr/include/linux/blkpg.h" + textual header "/usr/include/linux/blktrace_api.h" + textual header "/usr/include/linux/blkzoned.h" + textual header "/usr/include/linux/bpf.h" + textual header "/usr/include/linux/bpf_common.h" + textual header "/usr/include/linux/bpf_perf_event.h" + textual header "/usr/include/linux/bpfilter.h" + textual header "/usr/include/linux/bpqether.h" + textual header "/usr/include/linux/bsg.h" + textual header "/usr/include/linux/bt-bmc.h" + textual header "/usr/include/linux/btf.h" + textual header "/usr/include/linux/btrfs.h" + textual header "/usr/include/linux/btrfs_tree.h" + textual header "/usr/include/linux/byteorder/big_endian.h" + textual header "/usr/include/linux/byteorder/little_endian.h" + textual header "/usr/include/linux/caif/caif_socket.h" + textual header "/usr/include/linux/caif/if_caif.h" + textual header "/usr/include/linux/can.h" + textual header "/usr/include/linux/can/bcm.h" + textual header "/usr/include/linux/can/error.h" + textual header "/usr/include/linux/can/gw.h" + textual header "/usr/include/linux/can/j1939.h" + textual header "/usr/include/linux/can/netlink.h" + textual header "/usr/include/linux/can/raw.h" + textual header "/usr/include/linux/can/vxcan.h" + textual header "/usr/include/linux/capability.h" + textual header "/usr/include/linux/capi.h" + textual header "/usr/include/linux/cciss_defs.h" + textual header "/usr/include/linux/cciss_ioctl.h" + textual header "/usr/include/linux/cdrom.h" + textual header "/usr/include/linux/cec-funcs.h" + textual header "/usr/include/linux/cec.h" + textual header "/usr/include/linux/cgroupstats.h" + textual header "/usr/include/linux/chio.h" + textual header "/usr/include/linux/cifs/cifs_mount.h" + textual header "/usr/include/linux/cm4000_cs.h" + textual header "/usr/include/linux/cn_proc.h" + textual header "/usr/include/linux/coda.h" + textual header "/usr/include/linux/coff.h" + textual header "/usr/include/linux/connector.h" + textual header "/usr/include/linux/const.h" + textual header "/usr/include/linux/coresight-stm.h" + textual header "/usr/include/linux/cramfs_fs.h" + textual header "/usr/include/linux/cryptouser.h" + textual header "/usr/include/linux/cuda.h" + textual header "/usr/include/linux/cyclades.h" + textual header "/usr/include/linux/cycx_cfm.h" + textual header "/usr/include/linux/dcbnl.h" + textual header "/usr/include/linux/dccp.h" + textual header "/usr/include/linux/devlink.h" + textual header "/usr/include/linux/dlm.h" + textual header "/usr/include/linux/dlm_device.h" + textual header "/usr/include/linux/dlm_netlink.h" + textual header "/usr/include/linux/dlm_plock.h" + textual header "/usr/include/linux/dlmconstants.h" + textual header "/usr/include/linux/dm-ioctl.h" + textual header "/usr/include/linux/dm-log-userspace.h" + textual header "/usr/include/linux/dma-buf.h" + textual header "/usr/include/linux/dn.h" + textual header "/usr/include/linux/dns_resolver.h" + textual header "/usr/include/linux/dqblk_xfs.h" + textual header "/usr/include/linux/dvb/audio.h" + textual header "/usr/include/linux/dvb/ca.h" + textual header "/usr/include/linux/dvb/dmx.h" + textual header "/usr/include/linux/dvb/frontend.h" + textual header "/usr/include/linux/dvb/net.h" + textual header "/usr/include/linux/dvb/osd.h" + textual header "/usr/include/linux/dvb/version.h" + textual header "/usr/include/linux/dvb/video.h" + textual header "/usr/include/linux/edd.h" + textual header "/usr/include/linux/efs_fs_sb.h" + textual header "/usr/include/linux/elf-em.h" + textual header "/usr/include/linux/elf-fdpic.h" + textual header "/usr/include/linux/elf.h" + textual header "/usr/include/linux/elfcore.h" + textual header "/usr/include/linux/errno.h" + textual header "/usr/include/linux/errqueue.h" + textual header "/usr/include/linux/erspan.h" + textual header "/usr/include/linux/ethtool.h" + textual header "/usr/include/linux/eventpoll.h" + textual header "/usr/include/linux/fadvise.h" + textual header "/usr/include/linux/falloc.h" + textual header "/usr/include/linux/fanotify.h" + textual header "/usr/include/linux/fb.h" + textual header "/usr/include/linux/fcntl.h" + textual header "/usr/include/linux/fd.h" + textual header "/usr/include/linux/fdreg.h" + textual header "/usr/include/linux/fib_rules.h" + textual header "/usr/include/linux/fiemap.h" + textual header "/usr/include/linux/filter.h" + textual header "/usr/include/linux/firewire-cdev.h" + textual header "/usr/include/linux/firewire-constants.h" + textual header "/usr/include/linux/fou.h" + textual header "/usr/include/linux/fpga-dfl.h" + textual header "/usr/include/linux/fs.h" + textual header "/usr/include/linux/fscrypt.h" + textual header "/usr/include/linux/fsi.h" + textual header "/usr/include/linux/fsl_hypervisor.h" + textual header "/usr/include/linux/fsmap.h" + textual header "/usr/include/linux/fsverity.h" + textual header "/usr/include/linux/fuse.h" + textual header "/usr/include/linux/futex.h" + textual header "/usr/include/linux/gameport.h" + textual header "/usr/include/linux/gen_stats.h" + textual header "/usr/include/linux/genetlink.h" + textual header "/usr/include/linux/genwqe/genwqe_card.h" + textual header "/usr/include/linux/gfs2_ondisk.h" + textual header "/usr/include/linux/gigaset_dev.h" + textual header "/usr/include/linux/gpio.h" + textual header "/usr/include/linux/gsmmux.h" + textual header "/usr/include/linux/gtp.h" + textual header "/usr/include/linux/hash_info.h" + textual header "/usr/include/linux/hdlc.h" + textual header "/usr/include/linux/hdlc/ioctl.h" + textual header "/usr/include/linux/hdlcdrv.h" + textual header "/usr/include/linux/hdreg.h" + textual header "/usr/include/linux/hid.h" + textual header "/usr/include/linux/hiddev.h" + textual header "/usr/include/linux/hidraw.h" + textual header "/usr/include/linux/hpet.h" + textual header "/usr/include/linux/hsi/cs-protocol.h" + textual header "/usr/include/linux/hsi/hsi_char.h" + textual header "/usr/include/linux/hsr_netlink.h" + textual header "/usr/include/linux/hw_breakpoint.h" + textual header "/usr/include/linux/hyperv.h" + textual header "/usr/include/linux/hysdn_if.h" + textual header "/usr/include/linux/i2c-dev.h" + textual header "/usr/include/linux/i2c.h" + textual header "/usr/include/linux/i2o-dev.h" + textual header "/usr/include/linux/i8k.h" + textual header "/usr/include/linux/icmp.h" + textual header "/usr/include/linux/icmpv6.h" + textual header "/usr/include/linux/if.h" + textual header "/usr/include/linux/if_addr.h" + textual header "/usr/include/linux/if_addrlabel.h" + textual header "/usr/include/linux/if_alg.h" + textual header "/usr/include/linux/if_arcnet.h" + textual header "/usr/include/linux/if_arp.h" + textual header "/usr/include/linux/if_bonding.h" + textual header "/usr/include/linux/if_bridge.h" + textual header "/usr/include/linux/if_cablemodem.h" + textual header "/usr/include/linux/if_eql.h" + textual header "/usr/include/linux/if_ether.h" + textual header "/usr/include/linux/if_fc.h" + textual header "/usr/include/linux/if_fddi.h" + textual header "/usr/include/linux/if_frad.h" + textual header "/usr/include/linux/if_hippi.h" + textual header "/usr/include/linux/if_infiniband.h" + textual header "/usr/include/linux/if_link.h" + textual header "/usr/include/linux/if_ltalk.h" + textual header "/usr/include/linux/if_macsec.h" + textual header "/usr/include/linux/if_packet.h" + textual header "/usr/include/linux/if_phonet.h" + textual header "/usr/include/linux/if_plip.h" + textual header "/usr/include/linux/if_ppp.h" + textual header "/usr/include/linux/if_pppol2tp.h" + textual header "/usr/include/linux/if_pppox.h" + textual header "/usr/include/linux/if_slip.h" + textual header "/usr/include/linux/if_team.h" + textual header "/usr/include/linux/if_tun.h" + textual header "/usr/include/linux/if_tunnel.h" + textual header "/usr/include/linux/if_vlan.h" + textual header "/usr/include/linux/if_x25.h" + textual header "/usr/include/linux/if_xdp.h" + textual header "/usr/include/linux/ife.h" + textual header "/usr/include/linux/igmp.h" + textual header "/usr/include/linux/iio/events.h" + textual header "/usr/include/linux/iio/types.h" + textual header "/usr/include/linux/ila.h" + textual header "/usr/include/linux/in.h" + textual header "/usr/include/linux/in6.h" + textual header "/usr/include/linux/in_route.h" + textual header "/usr/include/linux/inet_diag.h" + textual header "/usr/include/linux/inotify.h" + textual header "/usr/include/linux/input-event-codes.h" + textual header "/usr/include/linux/input.h" + textual header "/usr/include/linux/io_uring.h" + textual header "/usr/include/linux/ioctl.h" + textual header "/usr/include/linux/iommu.h" + textual header "/usr/include/linux/ip.h" + textual header "/usr/include/linux/ip6_tunnel.h" + textual header "/usr/include/linux/ip_vs.h" + textual header "/usr/include/linux/ipc.h" + textual header "/usr/include/linux/ipmi.h" + textual header "/usr/include/linux/ipmi_bmc.h" + textual header "/usr/include/linux/ipmi_msgdefs.h" + textual header "/usr/include/linux/ipsec.h" + textual header "/usr/include/linux/ipv6.h" + textual header "/usr/include/linux/ipv6_route.h" + textual header "/usr/include/linux/ipx.h" + textual header "/usr/include/linux/irqnr.h" + textual header "/usr/include/linux/isdn/capicmd.h" + textual header "/usr/include/linux/iso_fs.h" + textual header "/usr/include/linux/isst_if.h" + textual header "/usr/include/linux/ivtv.h" + textual header "/usr/include/linux/ivtvfb.h" + textual header "/usr/include/linux/jffs2.h" + textual header "/usr/include/linux/joystick.h" + textual header "/usr/include/linux/kcm.h" + textual header "/usr/include/linux/kcmp.h" + textual header "/usr/include/linux/kcov.h" + textual header "/usr/include/linux/kd.h" + textual header "/usr/include/linux/kdev_t.h" + textual header "/usr/include/linux/kernel-page-flags.h" + textual header "/usr/include/linux/kernel.h" + textual header "/usr/include/linux/kernelcapi.h" + textual header "/usr/include/linux/kexec.h" + textual header "/usr/include/linux/keyboard.h" + textual header "/usr/include/linux/keyctl.h" + textual header "/usr/include/linux/kfd_ioctl.h" + textual header "/usr/include/linux/kvm.h" + textual header "/usr/include/linux/kvm_para.h" + textual header "/usr/include/linux/l2tp.h" + textual header "/usr/include/linux/libc-compat.h" + textual header "/usr/include/linux/lightnvm.h" + textual header "/usr/include/linux/limits.h" + textual header "/usr/include/linux/lirc.h" + textual header "/usr/include/linux/llc.h" + textual header "/usr/include/linux/loop.h" + textual header "/usr/include/linux/lp.h" + textual header "/usr/include/linux/lwtunnel.h" + textual header "/usr/include/linux/magic.h" + textual header "/usr/include/linux/major.h" + textual header "/usr/include/linux/map_to_7segment.h" + textual header "/usr/include/linux/matroxfb.h" + textual header "/usr/include/linux/max2175.h" + textual header "/usr/include/linux/mdio.h" + textual header "/usr/include/linux/media-bus-format.h" + textual header "/usr/include/linux/media.h" + textual header "/usr/include/linux/mei.h" + textual header "/usr/include/linux/membarrier.h" + textual header "/usr/include/linux/memfd.h" + textual header "/usr/include/linux/mempolicy.h" + textual header "/usr/include/linux/meye.h" + textual header "/usr/include/linux/mic_common.h" + textual header "/usr/include/linux/mic_ioctl.h" + textual header "/usr/include/linux/mii.h" + textual header "/usr/include/linux/minix_fs.h" + textual header "/usr/include/linux/mman.h" + textual header "/usr/include/linux/mmc/ioctl.h" + textual header "/usr/include/linux/mmtimer.h" + textual header "/usr/include/linux/module.h" + textual header "/usr/include/linux/mount.h" + textual header "/usr/include/linux/mpls.h" + textual header "/usr/include/linux/mpls_iptunnel.h" + textual header "/usr/include/linux/mqueue.h" + textual header "/usr/include/linux/mroute.h" + textual header "/usr/include/linux/mroute6.h" + textual header "/usr/include/linux/msdos_fs.h" + textual header "/usr/include/linux/msg.h" + textual header "/usr/include/linux/mtio.h" + textual header "/usr/include/linux/n_r3964.h" + textual header "/usr/include/linux/nbd-netlink.h" + textual header "/usr/include/linux/nbd.h" + textual header "/usr/include/linux/ncsi.h" + textual header "/usr/include/linux/ndctl.h" + textual header "/usr/include/linux/neighbour.h" + textual header "/usr/include/linux/net.h" + textual header "/usr/include/linux/net_dropmon.h" + textual header "/usr/include/linux/net_namespace.h" + textual header "/usr/include/linux/net_tstamp.h" + textual header "/usr/include/linux/netconf.h" + textual header "/usr/include/linux/netdevice.h" + textual header "/usr/include/linux/netfilter.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set_bitmap.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set_hash.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set_list.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_common.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_ftp.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_sctp.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_tcp.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_tuple_common.h" + textual header "/usr/include/linux/netfilter/nf_log.h" + textual header "/usr/include/linux/netfilter/nf_nat.h" + textual header "/usr/include/linux/netfilter/nf_synproxy.h" + textual header "/usr/include/linux/netfilter/nf_tables.h" + textual header "/usr/include/linux/netfilter/nf_tables_compat.h" + textual header "/usr/include/linux/netfilter/nfnetlink.h" + textual header "/usr/include/linux/netfilter/nfnetlink_acct.h" + textual header "/usr/include/linux/netfilter/nfnetlink_compat.h" + textual header "/usr/include/linux/netfilter/nfnetlink_conntrack.h" + textual header "/usr/include/linux/netfilter/nfnetlink_cthelper.h" + textual header "/usr/include/linux/netfilter/nfnetlink_cttimeout.h" + textual header "/usr/include/linux/netfilter/nfnetlink_log.h" + textual header "/usr/include/linux/netfilter/nfnetlink_osf.h" + textual header "/usr/include/linux/netfilter/nfnetlink_queue.h" + textual header "/usr/include/linux/netfilter/x_tables.h" + textual header "/usr/include/linux/netfilter/xt_AUDIT.h" + textual header "/usr/include/linux/netfilter/xt_CHECKSUM.h" + textual header "/usr/include/linux/netfilter/xt_CLASSIFY.h" + textual header "/usr/include/linux/netfilter/xt_CONNMARK.h" + textual header "/usr/include/linux/netfilter/xt_CONNSECMARK.h" + textual header "/usr/include/linux/netfilter/xt_CT.h" + textual header "/usr/include/linux/netfilter/xt_DSCP.h" + textual header "/usr/include/linux/netfilter/xt_HMARK.h" + textual header "/usr/include/linux/netfilter/xt_IDLETIMER.h" + textual header "/usr/include/linux/netfilter/xt_LED.h" + textual header "/usr/include/linux/netfilter/xt_LOG.h" + textual header "/usr/include/linux/netfilter/xt_MARK.h" + textual header "/usr/include/linux/netfilter/xt_NFLOG.h" + textual header "/usr/include/linux/netfilter/xt_NFQUEUE.h" + textual header "/usr/include/linux/netfilter/xt_RATEEST.h" + textual header "/usr/include/linux/netfilter/xt_SECMARK.h" + textual header "/usr/include/linux/netfilter/xt_SYNPROXY.h" + textual header "/usr/include/linux/netfilter/xt_TCPMSS.h" + textual header "/usr/include/linux/netfilter/xt_TCPOPTSTRIP.h" + textual header "/usr/include/linux/netfilter/xt_TEE.h" + textual header "/usr/include/linux/netfilter/xt_TPROXY.h" + textual header "/usr/include/linux/netfilter/xt_addrtype.h" + textual header "/usr/include/linux/netfilter/xt_bpf.h" + textual header "/usr/include/linux/netfilter/xt_cgroup.h" + textual header "/usr/include/linux/netfilter/xt_cluster.h" + textual header "/usr/include/linux/netfilter/xt_comment.h" + textual header "/usr/include/linux/netfilter/xt_connbytes.h" + textual header "/usr/include/linux/netfilter/xt_connlabel.h" + textual header "/usr/include/linux/netfilter/xt_connlimit.h" + textual header "/usr/include/linux/netfilter/xt_connmark.h" + textual header "/usr/include/linux/netfilter/xt_conntrack.h" + textual header "/usr/include/linux/netfilter/xt_cpu.h" + textual header "/usr/include/linux/netfilter/xt_dccp.h" + textual header "/usr/include/linux/netfilter/xt_devgroup.h" + textual header "/usr/include/linux/netfilter/xt_dscp.h" + textual header "/usr/include/linux/netfilter/xt_ecn.h" + textual header "/usr/include/linux/netfilter/xt_esp.h" + textual header "/usr/include/linux/netfilter/xt_hashlimit.h" + textual header "/usr/include/linux/netfilter/xt_helper.h" + textual header "/usr/include/linux/netfilter/xt_ipcomp.h" + textual header "/usr/include/linux/netfilter/xt_iprange.h" + textual header "/usr/include/linux/netfilter/xt_ipvs.h" + textual header "/usr/include/linux/netfilter/xt_l2tp.h" + textual header "/usr/include/linux/netfilter/xt_length.h" + textual header "/usr/include/linux/netfilter/xt_limit.h" + textual header "/usr/include/linux/netfilter/xt_mac.h" + textual header "/usr/include/linux/netfilter/xt_mark.h" + textual header "/usr/include/linux/netfilter/xt_multiport.h" + textual header "/usr/include/linux/netfilter/xt_nfacct.h" + textual header "/usr/include/linux/netfilter/xt_osf.h" + textual header "/usr/include/linux/netfilter/xt_owner.h" + textual header "/usr/include/linux/netfilter/xt_physdev.h" + textual header "/usr/include/linux/netfilter/xt_pkttype.h" + textual header "/usr/include/linux/netfilter/xt_policy.h" + textual header "/usr/include/linux/netfilter/xt_quota.h" + textual header "/usr/include/linux/netfilter/xt_rateest.h" + textual header "/usr/include/linux/netfilter/xt_realm.h" + textual header "/usr/include/linux/netfilter/xt_recent.h" + textual header "/usr/include/linux/netfilter/xt_rpfilter.h" + textual header "/usr/include/linux/netfilter/xt_sctp.h" + textual header "/usr/include/linux/netfilter/xt_set.h" + textual header "/usr/include/linux/netfilter/xt_socket.h" + textual header "/usr/include/linux/netfilter/xt_state.h" + textual header "/usr/include/linux/netfilter/xt_statistic.h" + textual header "/usr/include/linux/netfilter/xt_string.h" + textual header "/usr/include/linux/netfilter/xt_tcpmss.h" + textual header "/usr/include/linux/netfilter/xt_tcpudp.h" + textual header "/usr/include/linux/netfilter/xt_time.h" + textual header "/usr/include/linux/netfilter/xt_u32.h" + textual header "/usr/include/linux/netfilter_arp.h" + textual header "/usr/include/linux/netfilter_arp/arp_tables.h" + textual header "/usr/include/linux/netfilter_arp/arpt_mangle.h" + textual header "/usr/include/linux/netfilter_bridge.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_802_3.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_among.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_arp.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_arpreply.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_ip.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_ip6.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_limit.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_log.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_mark_m.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_mark_t.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_nat.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_nflog.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_pkttype.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_redirect.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_stp.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_vlan.h" + textual header "/usr/include/linux/netfilter_bridge/ebtables.h" + textual header "/usr/include/linux/netfilter_decnet.h" + textual header "/usr/include/linux/netfilter_ipv4.h" + textual header "/usr/include/linux/netfilter_ipv4/ip_tables.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ECN.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_LOG.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_REJECT.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_TTL.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ah.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ecn.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ttl.h" + textual header "/usr/include/linux/netfilter_ipv6.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6_tables.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_HL.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_LOG.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_NPT.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_REJECT.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_ah.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_frag.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_hl.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_mh.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_opts.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_rt.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_srh.h" + textual header "/usr/include/linux/netlink.h" + textual header "/usr/include/linux/netlink_diag.h" + textual header "/usr/include/linux/netrom.h" + textual header "/usr/include/linux/nexthop.h" + textual header "/usr/include/linux/nfc.h" + textual header "/usr/include/linux/nfs.h" + textual header "/usr/include/linux/nfs2.h" + textual header "/usr/include/linux/nfs3.h" + textual header "/usr/include/linux/nfs4.h" + textual header "/usr/include/linux/nfs4_mount.h" + textual header "/usr/include/linux/nfs_fs.h" + textual header "/usr/include/linux/nfs_idmap.h" + textual header "/usr/include/linux/nfs_mount.h" + textual header "/usr/include/linux/nfsacl.h" + textual header "/usr/include/linux/nfsd/cld.h" + textual header "/usr/include/linux/nfsd/debug.h" + textual header "/usr/include/linux/nfsd/export.h" + textual header "/usr/include/linux/nfsd/nfsfh.h" + textual header "/usr/include/linux/nfsd/stats.h" + textual header "/usr/include/linux/nilfs2_api.h" + textual header "/usr/include/linux/nilfs2_ondisk.h" + textual header "/usr/include/linux/nl80211.h" + textual header "/usr/include/linux/nsfs.h" + textual header "/usr/include/linux/nubus.h" + textual header "/usr/include/linux/nvme_ioctl.h" + textual header "/usr/include/linux/nvram.h" + textual header "/usr/include/linux/omap3isp.h" + textual header "/usr/include/linux/omapfb.h" + textual header "/usr/include/linux/oom.h" + textual header "/usr/include/linux/openvswitch.h" + textual header "/usr/include/linux/packet_diag.h" + textual header "/usr/include/linux/param.h" + textual header "/usr/include/linux/parport.h" + textual header "/usr/include/linux/patchkey.h" + textual header "/usr/include/linux/pci.h" + textual header "/usr/include/linux/pci_regs.h" + textual header "/usr/include/linux/pcitest.h" + textual header "/usr/include/linux/perf_event.h" + textual header "/usr/include/linux/personality.h" + textual header "/usr/include/linux/pfkeyv2.h" + textual header "/usr/include/linux/pg.h" + textual header "/usr/include/linux/phantom.h" + textual header "/usr/include/linux/phonet.h" + textual header "/usr/include/linux/pkt_cls.h" + textual header "/usr/include/linux/pkt_sched.h" + textual header "/usr/include/linux/pktcdvd.h" + textual header "/usr/include/linux/pmu.h" + textual header "/usr/include/linux/poll.h" + textual header "/usr/include/linux/posix_acl.h" + textual header "/usr/include/linux/posix_acl_xattr.h" + textual header "/usr/include/linux/posix_types.h" + textual header "/usr/include/linux/ppdev.h" + textual header "/usr/include/linux/ppp-comp.h" + textual header "/usr/include/linux/ppp-ioctl.h" + textual header "/usr/include/linux/ppp_defs.h" + textual header "/usr/include/linux/pps.h" + textual header "/usr/include/linux/pr.h" + textual header "/usr/include/linux/prctl.h" + textual header "/usr/include/linux/psample.h" + textual header "/usr/include/linux/psci.h" + textual header "/usr/include/linux/psp-sev.h" + textual header "/usr/include/linux/ptp_clock.h" + textual header "/usr/include/linux/ptrace.h" + textual header "/usr/include/linux/qemu_fw_cfg.h" + textual header "/usr/include/linux/qnx4_fs.h" + textual header "/usr/include/linux/qnxtypes.h" + textual header "/usr/include/linux/qrtr.h" + textual header "/usr/include/linux/quota.h" + textual header "/usr/include/linux/radeonfb.h" + textual header "/usr/include/linux/raid/md_p.h" + textual header "/usr/include/linux/raid/md_u.h" + textual header "/usr/include/linux/random.h" + textual header "/usr/include/linux/raw.h" + textual header "/usr/include/linux/rds.h" + textual header "/usr/include/linux/reboot.h" + textual header "/usr/include/linux/reiserfs_fs.h" + textual header "/usr/include/linux/reiserfs_xattr.h" + textual header "/usr/include/linux/resource.h" + textual header "/usr/include/linux/rfkill.h" + textual header "/usr/include/linux/rio_cm_cdev.h" + textual header "/usr/include/linux/rio_mport_cdev.h" + textual header "/usr/include/linux/romfs_fs.h" + textual header "/usr/include/linux/rose.h" + textual header "/usr/include/linux/route.h" + textual header "/usr/include/linux/rpmsg.h" + textual header "/usr/include/linux/rseq.h" + textual header "/usr/include/linux/rtc.h" + textual header "/usr/include/linux/rtnetlink.h" + textual header "/usr/include/linux/rxrpc.h" + textual header "/usr/include/linux/scc.h" + textual header "/usr/include/linux/sched.h" + textual header "/usr/include/linux/sched/types.h" + textual header "/usr/include/linux/scif_ioctl.h" + textual header "/usr/include/linux/screen_info.h" + textual header "/usr/include/linux/sctp.h" + textual header "/usr/include/linux/sdla.h" + textual header "/usr/include/linux/seccomp.h" + textual header "/usr/include/linux/securebits.h" + textual header "/usr/include/linux/sed-opal.h" + textual header "/usr/include/linux/seg6.h" + textual header "/usr/include/linux/seg6_genl.h" + textual header "/usr/include/linux/seg6_hmac.h" + textual header "/usr/include/linux/seg6_iptunnel.h" + textual header "/usr/include/linux/seg6_local.h" + textual header "/usr/include/linux/selinux_netlink.h" + textual header "/usr/include/linux/sem.h" + textual header "/usr/include/linux/serial.h" + textual header "/usr/include/linux/serial_core.h" + textual header "/usr/include/linux/serial_reg.h" + textual header "/usr/include/linux/serio.h" + textual header "/usr/include/linux/shm.h" + textual header "/usr/include/linux/signal.h" + textual header "/usr/include/linux/signalfd.h" + textual header "/usr/include/linux/smc.h" + textual header "/usr/include/linux/smc_diag.h" + textual header "/usr/include/linux/smiapp.h" + textual header "/usr/include/linux/snmp.h" + textual header "/usr/include/linux/sock_diag.h" + textual header "/usr/include/linux/socket.h" + textual header "/usr/include/linux/sockios.h" + textual header "/usr/include/linux/sonet.h" + textual header "/usr/include/linux/sonypi.h" + textual header "/usr/include/linux/sound.h" + textual header "/usr/include/linux/soundcard.h" + textual header "/usr/include/linux/spi/spidev.h" + textual header "/usr/include/linux/stat.h" + textual header "/usr/include/linux/stddef.h" + textual header "/usr/include/linux/stm.h" + textual header "/usr/include/linux/string.h" + textual header "/usr/include/linux/sunrpc/debug.h" + textual header "/usr/include/linux/suspend_ioctls.h" + textual header "/usr/include/linux/swab.h" + textual header "/usr/include/linux/switchtec_ioctl.h" + textual header "/usr/include/linux/sync_file.h" + textual header "/usr/include/linux/synclink.h" + textual header "/usr/include/linux/sysctl.h" + textual header "/usr/include/linux/sysinfo.h" + textual header "/usr/include/linux/target_core_user.h" + textual header "/usr/include/linux/taskstats.h" + textual header "/usr/include/linux/tc_act/tc_bpf.h" + textual header "/usr/include/linux/tc_act/tc_connmark.h" + textual header "/usr/include/linux/tc_act/tc_csum.h" + textual header "/usr/include/linux/tc_act/tc_ct.h" + textual header "/usr/include/linux/tc_act/tc_ctinfo.h" + textual header "/usr/include/linux/tc_act/tc_defact.h" + textual header "/usr/include/linux/tc_act/tc_gact.h" + textual header "/usr/include/linux/tc_act/tc_ife.h" + textual header "/usr/include/linux/tc_act/tc_ipt.h" + textual header "/usr/include/linux/tc_act/tc_mirred.h" + textual header "/usr/include/linux/tc_act/tc_mpls.h" + textual header "/usr/include/linux/tc_act/tc_nat.h" + textual header "/usr/include/linux/tc_act/tc_pedit.h" + textual header "/usr/include/linux/tc_act/tc_sample.h" + textual header "/usr/include/linux/tc_act/tc_skbedit.h" + textual header "/usr/include/linux/tc_act/tc_skbmod.h" + textual header "/usr/include/linux/tc_act/tc_tunnel_key.h" + textual header "/usr/include/linux/tc_act/tc_vlan.h" + textual header "/usr/include/linux/tc_ematch/tc_em_cmp.h" + textual header "/usr/include/linux/tc_ematch/tc_em_ipt.h" + textual header "/usr/include/linux/tc_ematch/tc_em_meta.h" + textual header "/usr/include/linux/tc_ematch/tc_em_nbyte.h" + textual header "/usr/include/linux/tc_ematch/tc_em_text.h" + textual header "/usr/include/linux/tcp.h" + textual header "/usr/include/linux/tcp_metrics.h" + textual header "/usr/include/linux/tee.h" + textual header "/usr/include/linux/termios.h" + textual header "/usr/include/linux/thermal.h" + textual header "/usr/include/linux/time.h" + textual header "/usr/include/linux/time_types.h" + textual header "/usr/include/linux/timerfd.h" + textual header "/usr/include/linux/times.h" + textual header "/usr/include/linux/timex.h" + textual header "/usr/include/linux/tiocl.h" + textual header "/usr/include/linux/tipc.h" + textual header "/usr/include/linux/tipc_config.h" + textual header "/usr/include/linux/tipc_netlink.h" + textual header "/usr/include/linux/tipc_sockets_diag.h" + textual header "/usr/include/linux/tls.h" + textual header "/usr/include/linux/toshiba.h" + textual header "/usr/include/linux/tty.h" + textual header "/usr/include/linux/tty_flags.h" + textual header "/usr/include/linux/types.h" + textual header "/usr/include/linux/udf_fs_i.h" + textual header "/usr/include/linux/udmabuf.h" + textual header "/usr/include/linux/udp.h" + textual header "/usr/include/linux/uhid.h" + textual header "/usr/include/linux/uinput.h" + textual header "/usr/include/linux/uio.h" + textual header "/usr/include/linux/uleds.h" + textual header "/usr/include/linux/ultrasound.h" + textual header "/usr/include/linux/un.h" + textual header "/usr/include/linux/unistd.h" + textual header "/usr/include/linux/unix_diag.h" + textual header "/usr/include/linux/usb/audio.h" + textual header "/usr/include/linux/usb/cdc-wdm.h" + textual header "/usr/include/linux/usb/cdc.h" + textual header "/usr/include/linux/usb/ch11.h" + textual header "/usr/include/linux/usb/ch9.h" + textual header "/usr/include/linux/usb/charger.h" + textual header "/usr/include/linux/usb/functionfs.h" + textual header "/usr/include/linux/usb/g_printer.h" + textual header "/usr/include/linux/usb/g_uvc.h" + textual header "/usr/include/linux/usb/gadgetfs.h" + textual header "/usr/include/linux/usb/midi.h" + textual header "/usr/include/linux/usb/tmc.h" + textual header "/usr/include/linux/usb/video.h" + textual header "/usr/include/linux/usbdevice_fs.h" + textual header "/usr/include/linux/usbip.h" + textual header "/usr/include/linux/userfaultfd.h" + textual header "/usr/include/linux/userio.h" + textual header "/usr/include/linux/utime.h" + textual header "/usr/include/linux/utsname.h" + textual header "/usr/include/linux/uuid.h" + textual header "/usr/include/linux/uvcvideo.h" + textual header "/usr/include/linux/v4l2-common.h" + textual header "/usr/include/linux/v4l2-controls.h" + textual header "/usr/include/linux/v4l2-dv-timings.h" + textual header "/usr/include/linux/v4l2-mediabus.h" + textual header "/usr/include/linux/v4l2-subdev.h" + textual header "/usr/include/linux/vbox_err.h" + textual header "/usr/include/linux/vbox_vmmdev_types.h" + textual header "/usr/include/linux/vboxguest.h" + textual header "/usr/include/linux/version.h" + textual header "/usr/include/linux/veth.h" + textual header "/usr/include/linux/vfio.h" + textual header "/usr/include/linux/vfio_ccw.h" + textual header "/usr/include/linux/vhost.h" + textual header "/usr/include/linux/vhost_types.h" + textual header "/usr/include/linux/videodev2.h" + textual header "/usr/include/linux/virtio_9p.h" + textual header "/usr/include/linux/virtio_balloon.h" + textual header "/usr/include/linux/virtio_blk.h" + textual header "/usr/include/linux/virtio_config.h" + textual header "/usr/include/linux/virtio_console.h" + textual header "/usr/include/linux/virtio_crypto.h" + textual header "/usr/include/linux/virtio_fs.h" + textual header "/usr/include/linux/virtio_gpu.h" + textual header "/usr/include/linux/virtio_ids.h" + textual header "/usr/include/linux/virtio_input.h" + textual header "/usr/include/linux/virtio_iommu.h" + textual header "/usr/include/linux/virtio_mmio.h" + textual header "/usr/include/linux/virtio_net.h" + textual header "/usr/include/linux/virtio_pci.h" + textual header "/usr/include/linux/virtio_pmem.h" + textual header "/usr/include/linux/virtio_ring.h" + textual header "/usr/include/linux/virtio_rng.h" + textual header "/usr/include/linux/virtio_scsi.h" + textual header "/usr/include/linux/virtio_types.h" + textual header "/usr/include/linux/virtio_vsock.h" + textual header "/usr/include/linux/vm_sockets.h" + textual header "/usr/include/linux/vm_sockets_diag.h" + textual header "/usr/include/linux/vmcore.h" + textual header "/usr/include/linux/vsockmon.h" + textual header "/usr/include/linux/vt.h" + textual header "/usr/include/linux/vtpm_proxy.h" + textual header "/usr/include/linux/wait.h" + textual header "/usr/include/linux/watchdog.h" + textual header "/usr/include/linux/wimax.h" + textual header "/usr/include/linux/wimax/i2400m.h" + textual header "/usr/include/linux/wireless.h" + textual header "/usr/include/linux/wmi.h" + textual header "/usr/include/linux/x25.h" + textual header "/usr/include/linux/xattr.h" + textual header "/usr/include/linux/xdp_diag.h" + textual header "/usr/include/linux/xfrm.h" + textual header "/usr/include/linux/xilinx-v4l2-controls.h" + textual header "/usr/include/linux/zorro.h" + textual header "/usr/include/linux/zorro_ids.h" + textual header "/usr/include/llvm-10/llvm/ADT/APFloat.h" + textual header "/usr/include/llvm-10/llvm/ADT/APInt.h" + textual header "/usr/include/llvm-10/llvm/ADT/APSInt.h" + textual header "/usr/include/llvm-10/llvm/ADT/AllocatorList.h" + textual header "/usr/include/llvm-10/llvm/ADT/Any.h" + textual header "/usr/include/llvm-10/llvm/ADT/ArrayRef.h" + textual header "/usr/include/llvm-10/llvm/ADT/BitVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/BitmaskEnum.h" + textual header "/usr/include/llvm-10/llvm/ADT/BreadthFirstIterator.h" + textual header "/usr/include/llvm-10/llvm/ADT/CachedHashString.h" + textual header "/usr/include/llvm-10/llvm/ADT/DAGDeltaAlgorithm.h" + textual header "/usr/include/llvm-10/llvm/ADT/DeltaAlgorithm.h" + textual header "/usr/include/llvm-10/llvm/ADT/DenseMap.h" + textual header "/usr/include/llvm-10/llvm/ADT/DenseMapInfo.h" + textual header "/usr/include/llvm-10/llvm/ADT/DenseSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/DepthFirstIterator.h" + textual header "/usr/include/llvm-10/llvm/ADT/DirectedGraph.h" + textual header "/usr/include/llvm-10/llvm/ADT/EnumeratedArray.h" + textual header "/usr/include/llvm-10/llvm/ADT/EpochTracker.h" + textual header "/usr/include/llvm-10/llvm/ADT/EquivalenceClasses.h" + textual header "/usr/include/llvm-10/llvm/ADT/FloatingPointMode.h" + textual header "/usr/include/llvm-10/llvm/ADT/FoldingSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/FunctionExtras.h" + textual header "/usr/include/llvm-10/llvm/ADT/GraphTraits.h" + textual header "/usr/include/llvm-10/llvm/ADT/Hashing.h" + textual header "/usr/include/llvm-10/llvm/ADT/ImmutableList.h" + textual header "/usr/include/llvm-10/llvm/ADT/ImmutableMap.h" + textual header "/usr/include/llvm-10/llvm/ADT/ImmutableSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/IndexedMap.h" + textual header "/usr/include/llvm-10/llvm/ADT/IntEqClasses.h" + textual header "/usr/include/llvm-10/llvm/ADT/IntervalMap.h" + textual header "/usr/include/llvm-10/llvm/ADT/IntrusiveRefCntPtr.h" + textual header "/usr/include/llvm-10/llvm/ADT/MapVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/None.h" + textual header "/usr/include/llvm-10/llvm/ADT/Optional.h" + textual header "/usr/include/llvm-10/llvm/ADT/PackedVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/PointerEmbeddedInt.h" + textual header "/usr/include/llvm-10/llvm/ADT/PointerIntPair.h" + textual header "/usr/include/llvm-10/llvm/ADT/PointerSumType.h" + textual header "/usr/include/llvm-10/llvm/ADT/PointerUnion.h" + textual header "/usr/include/llvm-10/llvm/ADT/PostOrderIterator.h" + textual header "/usr/include/llvm-10/llvm/ADT/PriorityQueue.h" + textual header "/usr/include/llvm-10/llvm/ADT/PriorityWorklist.h" + textual header "/usr/include/llvm-10/llvm/ADT/SCCIterator.h" + textual header "/usr/include/llvm-10/llvm/ADT/STLExtras.h" + textual header "/usr/include/llvm-10/llvm/ADT/ScopeExit.h" + textual header "/usr/include/llvm-10/llvm/ADT/ScopedHashTable.h" + textual header "/usr/include/llvm-10/llvm/ADT/Sequence.h" + textual header "/usr/include/llvm-10/llvm/ADT/SetOperations.h" + textual header "/usr/include/llvm-10/llvm/ADT/SetVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/SmallBitVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/SmallPtrSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/SmallSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/SmallString.h" + textual header "/usr/include/llvm-10/llvm/ADT/SmallVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/SparseBitVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/SparseMultiSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/SparseSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/Statistic.h" + textual header "/usr/include/llvm-10/llvm/ADT/StringExtras.h" + textual header "/usr/include/llvm-10/llvm/ADT/StringMap.h" + textual header "/usr/include/llvm-10/llvm/ADT/StringRef.h" + textual header "/usr/include/llvm-10/llvm/ADT/StringSet.h" + textual header "/usr/include/llvm-10/llvm/ADT/StringSwitch.h" + textual header "/usr/include/llvm-10/llvm/ADT/TinyPtrVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/Triple.h" + textual header "/usr/include/llvm-10/llvm/ADT/Twine.h" + textual header "/usr/include/llvm-10/llvm/ADT/UniqueVector.h" + textual header "/usr/include/llvm-10/llvm/ADT/bit.h" + textual header "/usr/include/llvm-10/llvm/ADT/edit_distance.h" + textual header "/usr/include/llvm-10/llvm/ADT/fallible_iterator.h" + textual header "/usr/include/llvm-10/llvm/ADT/ilist.h" + textual header "/usr/include/llvm-10/llvm/ADT/ilist_base.h" + textual header "/usr/include/llvm-10/llvm/ADT/ilist_iterator.h" + textual header "/usr/include/llvm-10/llvm/ADT/ilist_node.h" + textual header "/usr/include/llvm-10/llvm/ADT/ilist_node_base.h" + textual header "/usr/include/llvm-10/llvm/ADT/ilist_node_options.h" + textual header "/usr/include/llvm-10/llvm/ADT/iterator.h" + textual header "/usr/include/llvm-10/llvm/ADT/iterator_range.h" + textual header "/usr/include/llvm-10/llvm/ADT/simple_ilist.h" + textual header "/usr/include/llvm-10/llvm/Analysis/AliasAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/AliasAnalysisEvaluator.h" + textual header "/usr/include/llvm-10/llvm/Analysis/AliasSetTracker.h" + textual header "/usr/include/llvm-10/llvm/Analysis/AssumptionCache.h" + textual header "/usr/include/llvm-10/llvm/Analysis/BasicAliasAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/BlockFrequencyInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/BlockFrequencyInfoImpl.h" + textual header "/usr/include/llvm-10/llvm/Analysis/BranchProbabilityInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CFG.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CFGPrinter.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CFLAliasAnalysisUtils.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CFLAndersAliasAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CFLSteensAliasAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CGSCCPassManager.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CallGraph.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CallGraphSCCPass.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CallPrinter.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CaptureTracking.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CmpInstAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/CodeMetrics.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ConstantFolding.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DDG.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DOTGraphTraitsPass.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DemandedBits.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DependenceAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DependenceGraphBuilder.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DivergenceAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DomPrinter.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DomTreeUpdater.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DominanceFrontier.h" + textual header "/usr/include/llvm-10/llvm/Analysis/DominanceFrontierImpl.h" + textual header "/usr/include/llvm-10/llvm/Analysis/EHPersonalities.h" + textual header "/usr/include/llvm-10/llvm/Analysis/GlobalsModRef.h" + textual header "/usr/include/llvm-10/llvm/Analysis/GuardUtils.h" + textual header "/usr/include/llvm-10/llvm/Analysis/IVDescriptors.h" + textual header "/usr/include/llvm-10/llvm/Analysis/IVUsers.h" + textual header "/usr/include/llvm-10/llvm/Analysis/IndirectCallPromotionAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/IndirectCallVisitor.h" + textual header "/usr/include/llvm-10/llvm/Analysis/InlineCost.h" + textual header "/usr/include/llvm-10/llvm/Analysis/InstructionPrecedenceTracking.h" + textual header "/usr/include/llvm-10/llvm/Analysis/InstructionSimplify.h" + textual header "/usr/include/llvm-10/llvm/Analysis/Interval.h" + textual header "/usr/include/llvm-10/llvm/Analysis/IntervalIterator.h" + textual header "/usr/include/llvm-10/llvm/Analysis/IntervalPartition.h" + textual header "/usr/include/llvm-10/llvm/Analysis/IteratedDominanceFrontier.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LazyBlockFrequencyInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LazyBranchProbabilityInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LazyCallGraph.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LazyValueInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LegacyDivergenceAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/Lint.h" + textual header "/usr/include/llvm-10/llvm/Analysis/Loads.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopAccessAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopAnalysisManager.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopCacheAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopInfoImpl.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopIterator.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopPass.h" + textual header "/usr/include/llvm-10/llvm/Analysis/LoopUnrollAnalyzer.h" + textual header "/usr/include/llvm-10/llvm/Analysis/MemoryBuiltins.h" + textual header "/usr/include/llvm-10/llvm/Analysis/MemoryDependenceAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/MemoryLocation.h" + textual header "/usr/include/llvm-10/llvm/Analysis/MemorySSA.h" + textual header "/usr/include/llvm-10/llvm/Analysis/MemorySSAUpdater.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ModuleSummaryAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/MustExecute.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ObjCARCAliasAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ObjCARCAnalysisUtils.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ObjCARCInstKind.h" + textual header "/usr/include/llvm-10/llvm/Analysis/OptimizationRemarkEmitter.h" + textual header "/usr/include/llvm-10/llvm/Analysis/OrderedBasicBlock.h" + textual header "/usr/include/llvm-10/llvm/Analysis/OrderedInstructions.h" + textual header "/usr/include/llvm-10/llvm/Analysis/PHITransAddr.h" + textual header "/usr/include/llvm-10/llvm/Analysis/Passes.h" + textual header "/usr/include/llvm-10/llvm/Analysis/PhiValues.h" + textual header "/usr/include/llvm-10/llvm/Analysis/PostDominators.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ProfileSummaryInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/PtrUseVisitor.h" + textual header "/usr/include/llvm-10/llvm/Analysis/RegionInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/RegionInfoImpl.h" + textual header "/usr/include/llvm-10/llvm/Analysis/RegionIterator.h" + textual header "/usr/include/llvm-10/llvm/Analysis/RegionPass.h" + textual header "/usr/include/llvm-10/llvm/Analysis/RegionPrinter.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ScalarEvolution.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ScalarEvolutionAliasAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ScalarEvolutionExpander.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ScalarEvolutionExpressions.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ScalarEvolutionNormalization.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ScopedNoAliasAA.h" + textual header "/usr/include/llvm-10/llvm/Analysis/SparsePropagation.h" + textual header "/usr/include/llvm-10/llvm/Analysis/StackSafetyAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/SyncDependenceAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/SyntheticCountsUtils.h" + textual header "/usr/include/llvm-10/llvm/Analysis/TargetFolder.h" + textual header "/usr/include/llvm-10/llvm/Analysis/TargetLibraryInfo.def" + textual header "/usr/include/llvm-10/llvm/Analysis/TargetLibraryInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/TargetTransformInfo.h" + textual header "/usr/include/llvm-10/llvm/Analysis/TargetTransformInfoImpl.h" + textual header "/usr/include/llvm-10/llvm/Analysis/Trace.h" + textual header "/usr/include/llvm-10/llvm/Analysis/TypeBasedAliasAnalysis.h" + textual header "/usr/include/llvm-10/llvm/Analysis/TypeMetadataUtils.h" + textual header "/usr/include/llvm-10/llvm/Analysis/Utils/Local.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ValueLattice.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ValueLatticeUtils.h" + textual header "/usr/include/llvm-10/llvm/Analysis/ValueTracking.h" + textual header "/usr/include/llvm-10/llvm/Analysis/VecFuncs.def" + textual header "/usr/include/llvm-10/llvm/Analysis/VectorUtils.h" + textual header "/usr/include/llvm-10/llvm/AsmParser/Parser.h" + textual header "/usr/include/llvm-10/llvm/AsmParser/SlotMapping.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/AMDGPUMetadataVerifier.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/COFF.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/Dwarf.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/Dwarf.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/DynamicTags.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELF.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/AArch64.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/AMDGPU.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/ARC.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/ARM.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/AVR.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/BPF.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/Hexagon.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/Lanai.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/MSP430.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/Mips.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/PowerPC.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/PowerPC64.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/RISCV.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/Sparc.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/SystemZ.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/i386.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/ELFRelocs/x86_64.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MachO.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MachO.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/Magic.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/Minidump.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MinidumpConstants.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MsgPack.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MsgPack.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MsgPackDocument.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MsgPackReader.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/MsgPackWriter.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/Wasm.h" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/WasmRelocs.def" + textual header "/usr/include/llvm-10/llvm/BinaryFormat/XCOFF.h" + textual header "/usr/include/llvm-10/llvm/Bitcode/BitcodeAnalyzer.h" + textual header "/usr/include/llvm-10/llvm/Bitcode/BitcodeReader.h" + textual header "/usr/include/llvm-10/llvm/Bitcode/BitcodeWriter.h" + textual header "/usr/include/llvm-10/llvm/Bitcode/BitcodeWriterPass.h" + textual header "/usr/include/llvm-10/llvm/Bitcode/LLVMBitCodes.h" + textual header "/usr/include/llvm-10/llvm/Bitstream/BitCodes.h" + textual header "/usr/include/llvm-10/llvm/Bitstream/BitstreamReader.h" + textual header "/usr/include/llvm-10/llvm/Bitstream/BitstreamWriter.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/AccelTable.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/Analysis.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/AsmPrinter.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/AsmPrinterHandler.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/AtomicExpandUtils.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/BasicTTIImpl.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/BuiltinGCs.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/CSEConfigBase.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/CalcSpillWeights.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/CallingConvLower.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/CommandFlags.inc" + textual header "/usr/include/llvm-10/llvm/CodeGen/CostTable.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/DAGCombine.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/DFAPacketizer.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/DIE.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/DIEValue.def" + textual header "/usr/include/llvm-10/llvm/CodeGen/DbgEntityHistoryCalculator.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/DebugHandlerBase.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/DwarfStringPoolEntry.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/EdgeBundles.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ExecutionDomainFix.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ExpandReductions.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/FastISel.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/FaultMaps.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/FunctionLoweringInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GCMetadata.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GCMetadataPrinter.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GCStrategy.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/CSEInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/CallLowering.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/Combiner.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/CombinerHelper.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/CombinerInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/GISelChangeObserver.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/GISelKnownBits.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/GISelWorkList.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/IRTranslator.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/InstructionSelect.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/InstructionSelector.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/Legalizer.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/LegalizerHelper.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/LegalizerInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/Localizer.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/MIPatternMatch.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/MachineIRBuilder.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/RegBankSelect.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/RegisterBank.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/RegisterBankInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/Types.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/GlobalISel/Utils.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ISDOpcodes.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/IntrinsicLowering.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LatencyPriorityQueue.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LexicalScopes.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LinkAllAsmWriterComponents.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LinkAllCodegenComponents.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveInterval.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveIntervalUnion.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveIntervals.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LivePhysRegs.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveRangeCalc.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveRangeEdit.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveRegMatrix.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveRegUnits.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveStacks.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LiveVariables.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LoopTraversal.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/LowLevelType.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MIRFormatter.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MIRParser/MIParser.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MIRParser/MIRParser.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MIRPrinter.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MIRYamlMapping.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachORelocation.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineBasicBlock.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineBlockFrequencyInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineBranchProbabilityInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineCombinerPattern.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineConstantPool.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineDominanceFrontier.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineDominators.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineFrameInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineFunction.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineFunctionPass.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineInstr.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineInstrBuilder.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineInstrBundle.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineInstrBundleIterator.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineJumpTableInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineLoopInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineLoopUtils.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineMemOperand.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineModuleInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineModuleInfoImpls.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineOperand.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineOptimizationRemarkEmitter.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineOutliner.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachinePassRegistry.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachinePipeliner.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachinePostDominators.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineRegionInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineRegisterInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineSSAUpdater.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineScheduler.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineSizeOpts.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MachineTraceMetrics.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/MacroFusion.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ModuloSchedule.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/NonRelocatableStringpool.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PBQP/CostAllocator.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PBQP/Graph.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PBQP/Math.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PBQP/ReductionRules.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PBQP/Solution.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PBQPRAConstraint.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ParallelCG.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/Passes.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PreISelIntrinsicLowering.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/PseudoSourceValue.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ReachingDefAnalysis.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/RegAllocPBQP.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/RegAllocRegistry.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/Register.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/RegisterClassInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/RegisterPressure.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/RegisterScavenging.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/RegisterUsageInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ResourcePriorityQueue.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/RuntimeLibcalls.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SDNodeProperties.td" + textual header "/usr/include/llvm-10/llvm/CodeGen/ScheduleDAG.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ScheduleDAGInstrs.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ScheduleDAGMutation.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ScheduleDFS.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ScheduleHazardRecognizer.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SchedulerRegistry.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ScoreboardHazardRecognizer.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SelectionDAG.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SelectionDAGAddressAnalysis.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SelectionDAGISel.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SelectionDAGNodes.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SelectionDAGTargetInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SlotIndexes.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/StackMaps.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/StackProtector.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SwiftErrorValueTracking.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/SwitchLoweringUtils.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TailDuplicator.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetCallingConv.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetFrameLowering.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetInstrInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetLowering.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetLoweringObjectFileImpl.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetOpcodes.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetPassConfig.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetRegisterInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetSchedule.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/TargetSubtargetInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/UnreachableBlockElim.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ValueTypes.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/ValueTypes.td" + textual header "/usr/include/llvm-10/llvm/CodeGen/VirtRegMap.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/WasmEHFuncInfo.h" + textual header "/usr/include/llvm-10/llvm/CodeGen/WinEHFuncInfo.h" + textual header "/usr/include/llvm-10/llvm/Config/AsmParsers.def" + textual header "/usr/include/llvm-10/llvm/Config/AsmPrinters.def" + textual header "/usr/include/llvm-10/llvm/Config/Disassemblers.def" + textual header "/usr/include/llvm-10/llvm/Config/Targets.def" + textual header "/usr/include/llvm-10/llvm/Config/abi-breaking.h" + textual header "/usr/include/llvm-10/llvm/Config/llvm-config.h" + textual header "/usr/include/llvm-10/llvm/DWARFLinker/DWARFLinker.h" + textual header "/usr/include/llvm-10/llvm/DWARFLinker/DWARFLinkerCompileUnit.h" + textual header "/usr/include/llvm-10/llvm/DWARFLinker/DWARFLinkerDeclContext.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CVRecord.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CVSymbolVisitor.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CVTypeVisitor.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CodeView.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CodeViewError.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CodeViewRecordIO.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CodeViewRegisters.def" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CodeViewSymbols.def" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/CodeViewTypes.def" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugLinesSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/EnumTables.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/Formatters.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/FunctionId.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/GUID.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/Line.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/RecordName.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/RecordSerialization.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/StringsAndChecksums.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolDeserializer.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolDumper.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolRecord.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolRecordMapping.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolSerializer.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeCollection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeDeserializer.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeDumpVisitor.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeHashing.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeIndex.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeRecord.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeRecordHelpers.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeRecordMapping.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeStreamMerger.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeTableCollection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DIContext.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFAddressRange.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFAttribute.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFCompileUnit.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFContext.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDataExtractor.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugAddr.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugAranges.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugFrame.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugLine.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugLoc.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugMacro.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFDie.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFExpression.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFFormValue.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFGdbIndex.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFListTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFLocationExpression.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFObject.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFRelocMap.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFSection.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFTypeUnit.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFUnit.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFUnitIndex.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/DWARF/DWARFVerifier.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/FileEntry.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/FileWriter.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/FunctionInfo.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/GsymCreator.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/GsymReader.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/Header.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/InlineInfo.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/LineEntry.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/LineTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/LookupResult.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/Range.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/GSYM/StringTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/MSF/IMSFFile.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/MSF/MSFBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/MSF/MSFCommon.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/MSF/MSFError.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/MSF/MappedBlockStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIADataStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAError.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAFrameData.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIALineNumber.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIASession.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIASourceFile.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIASupport.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIATable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/DIA/DIAUtils.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/GenericError.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBDataStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBEnumChildren.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBFrameData.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBInjectedSource.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBLineNumber.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBRawSymbol.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBSectionContrib.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBSession.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBSourceFile.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/IPDBTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/DbiModuleList.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/DbiStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/EnumTables.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/Formatters.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/GlobalsStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/Hash.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/HashTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/InfoStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NamedStreamMap.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeEnumModules.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeSession.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypeArray.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypePointer.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/PDBFile.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/PDBStringTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/PublicsStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/RawConstants.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/RawError.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/RawTypes.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/SymbolCache.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/SymbolStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/TpiHashing.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/TpiStream.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDB.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBContext.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBExtras.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymDumper.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbol.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolBlock.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolCompiland.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolCustom.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolData.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolExe.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolFunc.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolLabel.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolThunk.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolUnknown.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/PDBTypes.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/PDB/UDTLayout.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/Symbolize/DIPrinter.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/Symbolize/SymbolizableModule.h" + textual header "/usr/include/llvm-10/llvm/DebugInfo/Symbolize/Symbolize.h" + textual header "/usr/include/llvm-10/llvm/Demangle/Demangle.h" + textual header "/usr/include/llvm-10/llvm/Demangle/DemangleConfig.h" + textual header "/usr/include/llvm-10/llvm/Demangle/ItaniumDemangle.h" + textual header "/usr/include/llvm-10/llvm/Demangle/MicrosoftDemangle.h" + textual header "/usr/include/llvm-10/llvm/Demangle/MicrosoftDemangleNodes.h" + textual header "/usr/include/llvm-10/llvm/Demangle/StringView.h" + textual header "/usr/include/llvm-10/llvm/Demangle/Utility.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/ExecutionEngine.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/GenericValue.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Interpreter.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITEventListener.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITLink/EHFrameSupport.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITLink/JITLink.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITLink/MachO.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITLink/MachO_arm64.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITLink/MachO_x86_64.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/JITSymbol.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/MCJIT.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/OProfileWrapper.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/ObjectCache.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/CompileUtils.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/Core.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/DebugUtils.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/ExecutionUtils.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/IRCompileLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/IRTransformLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/IndirectionUtils.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/LLJIT.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/LambdaResolver.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/Layer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/LazyReexports.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/Legacy.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/NullResolver.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/OrcABISupport.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/OrcError.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/RPC/RPCSerialization.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/RPC/RPCUtils.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/RPC/RawByteChannel.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/Speculation.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/SymbolStringPool.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/Orc/ThreadSafeModule.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/OrcMCJITReplacement.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/OrcV1Deprecation.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/RTDyldMemoryManager.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/RuntimeDyld.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/RuntimeDyldChecker.h" + textual header "/usr/include/llvm-10/llvm/ExecutionEngine/SectionMemoryManager.h" + textual header "/usr/include/llvm-10/llvm/Frontend/OpenMP/OMPConstants.h" + textual header "/usr/include/llvm-10/llvm/Frontend/OpenMP/OMPIRBuilder.h" + textual header "/usr/include/llvm-10/llvm/Frontend/OpenMP/OMPKinds.def" + textual header "/usr/include/llvm-10/llvm/FuzzMutate/FuzzerCLI.h" + textual header "/usr/include/llvm-10/llvm/FuzzMutate/IRMutator.h" + textual header "/usr/include/llvm-10/llvm/FuzzMutate/OpDescriptor.h" + textual header "/usr/include/llvm-10/llvm/FuzzMutate/Operations.h" + textual header "/usr/include/llvm-10/llvm/FuzzMutate/Random.h" + textual header "/usr/include/llvm-10/llvm/FuzzMutate/RandomIRBuilder.h" + textual header "/usr/include/llvm-10/llvm/IR/Argument.h" + textual header "/usr/include/llvm-10/llvm/IR/AssemblyAnnotationWriter.h" + textual header "/usr/include/llvm-10/llvm/IR/Attributes.h" + textual header "/usr/include/llvm-10/llvm/IR/Attributes.inc" + textual header "/usr/include/llvm-10/llvm/IR/Attributes.td" + textual header "/usr/include/llvm-10/llvm/IR/AutoUpgrade.h" + textual header "/usr/include/llvm-10/llvm/IR/BasicBlock.h" + textual header "/usr/include/llvm-10/llvm/IR/CFG.h" + textual header "/usr/include/llvm-10/llvm/IR/CFGDiff.h" + textual header "/usr/include/llvm-10/llvm/IR/CallSite.h" + textual header "/usr/include/llvm-10/llvm/IR/CallingConv.h" + textual header "/usr/include/llvm-10/llvm/IR/Comdat.h" + textual header "/usr/include/llvm-10/llvm/IR/Constant.h" + textual header "/usr/include/llvm-10/llvm/IR/ConstantFolder.h" + textual header "/usr/include/llvm-10/llvm/IR/ConstantRange.h" + textual header "/usr/include/llvm-10/llvm/IR/Constants.h" + textual header "/usr/include/llvm-10/llvm/IR/ConstrainedOps.def" + textual header "/usr/include/llvm-10/llvm/IR/DIBuilder.h" + textual header "/usr/include/llvm-10/llvm/IR/DataLayout.h" + textual header "/usr/include/llvm-10/llvm/IR/DebugInfo.h" + textual header "/usr/include/llvm-10/llvm/IR/DebugInfoFlags.def" + textual header "/usr/include/llvm-10/llvm/IR/DebugInfoMetadata.h" + textual header "/usr/include/llvm-10/llvm/IR/DebugLoc.h" + textual header "/usr/include/llvm-10/llvm/IR/DerivedTypes.h" + textual header "/usr/include/llvm-10/llvm/IR/DerivedUser.h" + textual header "/usr/include/llvm-10/llvm/IR/DiagnosticHandler.h" + textual header "/usr/include/llvm-10/llvm/IR/DiagnosticInfo.h" + textual header "/usr/include/llvm-10/llvm/IR/DiagnosticPrinter.h" + textual header "/usr/include/llvm-10/llvm/IR/Dominators.h" + textual header "/usr/include/llvm-10/llvm/IR/FPEnv.h" + textual header "/usr/include/llvm-10/llvm/IR/FixedMetadataKinds.def" + textual header "/usr/include/llvm-10/llvm/IR/Function.h" + textual header "/usr/include/llvm-10/llvm/IR/GVMaterializer.h" + textual header "/usr/include/llvm-10/llvm/IR/GetElementPtrTypeIterator.h" + textual header "/usr/include/llvm-10/llvm/IR/GlobalAlias.h" + textual header "/usr/include/llvm-10/llvm/IR/GlobalIFunc.h" + textual header "/usr/include/llvm-10/llvm/IR/GlobalIndirectSymbol.h" + textual header "/usr/include/llvm-10/llvm/IR/GlobalObject.h" + textual header "/usr/include/llvm-10/llvm/IR/GlobalValue.h" + textual header "/usr/include/llvm-10/llvm/IR/GlobalVariable.h" + textual header "/usr/include/llvm-10/llvm/IR/IRBuilder.h" + textual header "/usr/include/llvm-10/llvm/IR/IRPrintingPasses.h" + textual header "/usr/include/llvm-10/llvm/IR/InlineAsm.h" + textual header "/usr/include/llvm-10/llvm/IR/InstIterator.h" + textual header "/usr/include/llvm-10/llvm/IR/InstVisitor.h" + textual header "/usr/include/llvm-10/llvm/IR/InstrTypes.h" + textual header "/usr/include/llvm-10/llvm/IR/Instruction.def" + textual header "/usr/include/llvm-10/llvm/IR/Instruction.h" + textual header "/usr/include/llvm-10/llvm/IR/Instructions.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicEnums.inc" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicImpl.inc" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicInst.h" + textual header "/usr/include/llvm-10/llvm/IR/Intrinsics.h" + textual header "/usr/include/llvm-10/llvm/IR/Intrinsics.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsAArch64.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsAArch64.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsAMDGPU.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsAMDGPU.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsARM.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsARM.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsBPF.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsBPF.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsHexagon.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsHexagon.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsMips.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsMips.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsNVPTX.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsNVVM.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsPowerPC.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsPowerPC.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsR600.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsRISCV.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsRISCV.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsS390.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsSystemZ.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsWebAssembly.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsWebAssembly.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsX86.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsX86.td" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsXCore.h" + textual header "/usr/include/llvm-10/llvm/IR/IntrinsicsXCore.td" + textual header "/usr/include/llvm-10/llvm/IR/LLVMContext.h" + textual header "/usr/include/llvm-10/llvm/IR/LegacyPassManager.h" + textual header "/usr/include/llvm-10/llvm/IR/LegacyPassManagers.h" + textual header "/usr/include/llvm-10/llvm/IR/LegacyPassNameParser.h" + textual header "/usr/include/llvm-10/llvm/IR/MDBuilder.h" + textual header "/usr/include/llvm-10/llvm/IR/Mangler.h" + textual header "/usr/include/llvm-10/llvm/IR/Metadata.def" + textual header "/usr/include/llvm-10/llvm/IR/Metadata.h" + textual header "/usr/include/llvm-10/llvm/IR/Module.h" + textual header "/usr/include/llvm-10/llvm/IR/ModuleSlotTracker.h" + textual header "/usr/include/llvm-10/llvm/IR/ModuleSummaryIndex.h" + textual header "/usr/include/llvm-10/llvm/IR/ModuleSummaryIndexYAML.h" + textual header "/usr/include/llvm-10/llvm/IR/NoFolder.h" + textual header "/usr/include/llvm-10/llvm/IR/OperandTraits.h" + textual header "/usr/include/llvm-10/llvm/IR/Operator.h" + textual header "/usr/include/llvm-10/llvm/IR/OptBisect.h" + textual header "/usr/include/llvm-10/llvm/IR/PassInstrumentation.h" + textual header "/usr/include/llvm-10/llvm/IR/PassManager.h" + textual header "/usr/include/llvm-10/llvm/IR/PassManagerInternal.h" + textual header "/usr/include/llvm-10/llvm/IR/PassTimingInfo.h" + textual header "/usr/include/llvm-10/llvm/IR/PatternMatch.h" + textual header "/usr/include/llvm-10/llvm/IR/PredIteratorCache.h" + textual header "/usr/include/llvm-10/llvm/IR/ProfileSummary.h" + textual header "/usr/include/llvm-10/llvm/IR/RemarkStreamer.h" + textual header "/usr/include/llvm-10/llvm/IR/RuntimeLibcalls.def" + textual header "/usr/include/llvm-10/llvm/IR/SafepointIRVerifier.h" + textual header "/usr/include/llvm-10/llvm/IR/Statepoint.h" + textual header "/usr/include/llvm-10/llvm/IR/SymbolTableListTraits.h" + textual header "/usr/include/llvm-10/llvm/IR/TrackingMDRef.h" + textual header "/usr/include/llvm-10/llvm/IR/Type.h" + textual header "/usr/include/llvm-10/llvm/IR/TypeFinder.h" + textual header "/usr/include/llvm-10/llvm/IR/Use.h" + textual header "/usr/include/llvm-10/llvm/IR/UseListOrder.h" + textual header "/usr/include/llvm-10/llvm/IR/User.h" + textual header "/usr/include/llvm-10/llvm/IR/Value.def" + textual header "/usr/include/llvm-10/llvm/IR/Value.h" + textual header "/usr/include/llvm-10/llvm/IR/ValueHandle.h" + textual header "/usr/include/llvm-10/llvm/IR/ValueMap.h" + textual header "/usr/include/llvm-10/llvm/IR/ValueSymbolTable.h" + textual header "/usr/include/llvm-10/llvm/IR/Verifier.h" + textual header "/usr/include/llvm-10/llvm/IRReader/IRReader.h" + textual header "/usr/include/llvm-10/llvm/InitializePasses.h" + textual header "/usr/include/llvm-10/llvm/LTO/Caching.h" + textual header "/usr/include/llvm-10/llvm/LTO/Config.h" + textual header "/usr/include/llvm-10/llvm/LTO/LTO.h" + textual header "/usr/include/llvm-10/llvm/LTO/LTOBackend.h" + textual header "/usr/include/llvm-10/llvm/LTO/SummaryBasedOptimizations.h" + textual header "/usr/include/llvm-10/llvm/LTO/legacy/LTOCodeGenerator.h" + textual header "/usr/include/llvm-10/llvm/LTO/legacy/LTOModule.h" + textual header "/usr/include/llvm-10/llvm/LTO/legacy/ThinLTOCodeGenerator.h" + textual header "/usr/include/llvm-10/llvm/LTO/legacy/UpdateCompilerUsed.h" + textual header "/usr/include/llvm-10/llvm/LineEditor/LineEditor.h" + textual header "/usr/include/llvm-10/llvm/LinkAllIR.h" + textual header "/usr/include/llvm-10/llvm/LinkAllPasses.h" + textual header "/usr/include/llvm-10/llvm/Linker/IRMover.h" + textual header "/usr/include/llvm-10/llvm/Linker/Linker.h" + textual header "/usr/include/llvm-10/llvm/MC/ConstantPools.h" + textual header "/usr/include/llvm-10/llvm/MC/LaneBitmask.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmBackend.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmInfo.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmInfoCOFF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmInfoDarwin.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmInfoELF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmInfoWasm.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmInfoXCOFF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmLayout.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAsmMacro.h" + textual header "/usr/include/llvm-10/llvm/MC/MCAssembler.h" + textual header "/usr/include/llvm-10/llvm/MC/MCCodeEmitter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCCodeView.h" + textual header "/usr/include/llvm-10/llvm/MC/MCContext.h" + textual header "/usr/include/llvm-10/llvm/MC/MCDirectives.h" + textual header "/usr/include/llvm-10/llvm/MC/MCDisassembler/MCDisassembler.h" + textual header "/usr/include/llvm-10/llvm/MC/MCDisassembler/MCExternalSymbolizer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCDisassembler/MCRelocationInfo.h" + textual header "/usr/include/llvm-10/llvm/MC/MCDisassembler/MCSymbolizer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCDwarf.h" + textual header "/usr/include/llvm-10/llvm/MC/MCELFObjectWriter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCELFStreamer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCExpr.h" + textual header "/usr/include/llvm-10/llvm/MC/MCFixedLenDisassembler.h" + textual header "/usr/include/llvm-10/llvm/MC/MCFixup.h" + textual header "/usr/include/llvm-10/llvm/MC/MCFixupKindInfo.h" + textual header "/usr/include/llvm-10/llvm/MC/MCFragment.h" + textual header "/usr/include/llvm-10/llvm/MC/MCInst.h" + textual header "/usr/include/llvm-10/llvm/MC/MCInstBuilder.h" + textual header "/usr/include/llvm-10/llvm/MC/MCInstPrinter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCInstrAnalysis.h" + textual header "/usr/include/llvm-10/llvm/MC/MCInstrDesc.h" + textual header "/usr/include/llvm-10/llvm/MC/MCInstrInfo.h" + textual header "/usr/include/llvm-10/llvm/MC/MCInstrItineraries.h" + textual header "/usr/include/llvm-10/llvm/MC/MCLabel.h" + textual header "/usr/include/llvm-10/llvm/MC/MCLinkerOptimizationHint.h" + textual header "/usr/include/llvm-10/llvm/MC/MCMachObjectWriter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCObjectFileInfo.h" + textual header "/usr/include/llvm-10/llvm/MC/MCObjectStreamer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCObjectWriter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/AsmCond.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/AsmLexer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/MCAsmLexer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/MCAsmParser.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/MCAsmParserExtension.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/MCAsmParserUtils.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/MCParsedAsmOperand.h" + textual header "/usr/include/llvm-10/llvm/MC/MCParser/MCTargetAsmParser.h" + textual header "/usr/include/llvm-10/llvm/MC/MCRegister.h" + textual header "/usr/include/llvm-10/llvm/MC/MCRegisterInfo.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSchedule.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSection.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSectionCOFF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSectionELF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSectionMachO.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSectionWasm.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSectionXCOFF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCStreamer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSubtargetInfo.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSymbol.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSymbolCOFF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSymbolELF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSymbolMachO.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSymbolWasm.h" + textual header "/usr/include/llvm-10/llvm/MC/MCSymbolXCOFF.h" + textual header "/usr/include/llvm-10/llvm/MC/MCTargetOptions.h" + textual header "/usr/include/llvm-10/llvm/MC/MCTargetOptionsCommandFlags.inc" + textual header "/usr/include/llvm-10/llvm/MC/MCValue.h" + textual header "/usr/include/llvm-10/llvm/MC/MCWasmObjectWriter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCWasmStreamer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCWin64EH.h" + textual header "/usr/include/llvm-10/llvm/MC/MCWinCOFFObjectWriter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCWinCOFFStreamer.h" + textual header "/usr/include/llvm-10/llvm/MC/MCWinEH.h" + textual header "/usr/include/llvm-10/llvm/MC/MCXCOFFObjectWriter.h" + textual header "/usr/include/llvm-10/llvm/MC/MCXCOFFStreamer.h" + textual header "/usr/include/llvm-10/llvm/MC/MachineLocation.h" + textual header "/usr/include/llvm-10/llvm/MC/SectionKind.h" + textual header "/usr/include/llvm-10/llvm/MC/StringTableBuilder.h" + textual header "/usr/include/llvm-10/llvm/MC/SubtargetFeature.h" + textual header "/usr/include/llvm-10/llvm/MCA/CodeEmitter.h" + textual header "/usr/include/llvm-10/llvm/MCA/Context.h" + textual header "/usr/include/llvm-10/llvm/MCA/HWEventListener.h" + textual header "/usr/include/llvm-10/llvm/MCA/HardwareUnits/HardwareUnit.h" + textual header "/usr/include/llvm-10/llvm/MCA/HardwareUnits/LSUnit.h" + textual header "/usr/include/llvm-10/llvm/MCA/HardwareUnits/RegisterFile.h" + textual header "/usr/include/llvm-10/llvm/MCA/HardwareUnits/ResourceManager.h" + textual header "/usr/include/llvm-10/llvm/MCA/HardwareUnits/RetireControlUnit.h" + textual header "/usr/include/llvm-10/llvm/MCA/HardwareUnits/Scheduler.h" + textual header "/usr/include/llvm-10/llvm/MCA/InstrBuilder.h" + textual header "/usr/include/llvm-10/llvm/MCA/Instruction.h" + textual header "/usr/include/llvm-10/llvm/MCA/Pipeline.h" + textual header "/usr/include/llvm-10/llvm/MCA/SourceMgr.h" + textual header "/usr/include/llvm-10/llvm/MCA/Stages/DispatchStage.h" + textual header "/usr/include/llvm-10/llvm/MCA/Stages/EntryStage.h" + textual header "/usr/include/llvm-10/llvm/MCA/Stages/ExecuteStage.h" + textual header "/usr/include/llvm-10/llvm/MCA/Stages/InstructionTables.h" + textual header "/usr/include/llvm-10/llvm/MCA/Stages/MicroOpQueueStage.h" + textual header "/usr/include/llvm-10/llvm/MCA/Stages/RetireStage.h" + textual header "/usr/include/llvm-10/llvm/MCA/Stages/Stage.h" + textual header "/usr/include/llvm-10/llvm/MCA/Support.h" + textual header "/usr/include/llvm-10/llvm/Object/Archive.h" + textual header "/usr/include/llvm-10/llvm/Object/ArchiveWriter.h" + textual header "/usr/include/llvm-10/llvm/Object/Binary.h" + textual header "/usr/include/llvm-10/llvm/Object/COFF.h" + textual header "/usr/include/llvm-10/llvm/Object/COFFImportFile.h" + textual header "/usr/include/llvm-10/llvm/Object/COFFModuleDefinition.h" + textual header "/usr/include/llvm-10/llvm/Object/CVDebugRecord.h" + textual header "/usr/include/llvm-10/llvm/Object/Decompressor.h" + textual header "/usr/include/llvm-10/llvm/Object/ELF.h" + textual header "/usr/include/llvm-10/llvm/Object/ELFObjectFile.h" + textual header "/usr/include/llvm-10/llvm/Object/ELFTypes.h" + textual header "/usr/include/llvm-10/llvm/Object/Error.h" + textual header "/usr/include/llvm-10/llvm/Object/IRObjectFile.h" + textual header "/usr/include/llvm-10/llvm/Object/IRSymtab.h" + textual header "/usr/include/llvm-10/llvm/Object/MachO.h" + textual header "/usr/include/llvm-10/llvm/Object/MachOUniversal.h" + textual header "/usr/include/llvm-10/llvm/Object/Minidump.h" + textual header "/usr/include/llvm-10/llvm/Object/ModuleSymbolTable.h" + textual header "/usr/include/llvm-10/llvm/Object/ObjectFile.h" + textual header "/usr/include/llvm-10/llvm/Object/RelocationResolver.h" + textual header "/usr/include/llvm-10/llvm/Object/StackMapParser.h" + textual header "/usr/include/llvm-10/llvm/Object/SymbolSize.h" + textual header "/usr/include/llvm-10/llvm/Object/SymbolicFile.h" + textual header "/usr/include/llvm-10/llvm/Object/TapiFile.h" + textual header "/usr/include/llvm-10/llvm/Object/TapiUniversal.h" + textual header "/usr/include/llvm-10/llvm/Object/Wasm.h" + textual header "/usr/include/llvm-10/llvm/Object/WasmTraits.h" + textual header "/usr/include/llvm-10/llvm/Object/WindowsMachineFlag.h" + textual header "/usr/include/llvm-10/llvm/Object/WindowsResource.h" + textual header "/usr/include/llvm-10/llvm/Object/XCOFFObjectFile.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/COFFYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/CodeViewYAMLDebugSections.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/CodeViewYAMLSymbols.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/CodeViewYAMLTypes.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/DWARFEmitter.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/DWARFYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/ELFYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/MachOYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/MinidumpYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/ObjectYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/WasmYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/XCOFFYAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/YAML.h" + textual header "/usr/include/llvm-10/llvm/ObjectYAML/yaml2obj.h" + textual header "/usr/include/llvm-10/llvm/Option/Arg.h" + textual header "/usr/include/llvm-10/llvm/Option/ArgList.h" + textual header "/usr/include/llvm-10/llvm/Option/OptParser.td" + textual header "/usr/include/llvm-10/llvm/Option/OptSpecifier.h" + textual header "/usr/include/llvm-10/llvm/Option/OptTable.h" + textual header "/usr/include/llvm-10/llvm/Option/Option.h" + textual header "/usr/include/llvm-10/llvm/Pass.h" + textual header "/usr/include/llvm-10/llvm/PassAnalysisSupport.h" + textual header "/usr/include/llvm-10/llvm/PassInfo.h" + textual header "/usr/include/llvm-10/llvm/PassRegistry.h" + textual header "/usr/include/llvm-10/llvm/PassSupport.h" + textual header "/usr/include/llvm-10/llvm/Passes/PassBuilder.h" + textual header "/usr/include/llvm-10/llvm/Passes/PassPlugin.h" + textual header "/usr/include/llvm-10/llvm/Passes/StandardInstrumentations.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/Coverage/CoverageMapping.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/Coverage/CoverageMappingReader.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/Coverage/CoverageMappingWriter.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/GCOV.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/InstrProf.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/InstrProfData.inc" + textual header "/usr/include/llvm-10/llvm/ProfileData/InstrProfReader.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/InstrProfWriter.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/ProfileCommon.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/SampleProf.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/SampleProfReader.h" + textual header "/usr/include/llvm-10/llvm/ProfileData/SampleProfWriter.h" + textual header "/usr/include/llvm-10/llvm/Remarks/BitstreamRemarkContainer.h" + textual header "/usr/include/llvm-10/llvm/Remarks/BitstreamRemarkParser.h" + textual header "/usr/include/llvm-10/llvm/Remarks/BitstreamRemarkSerializer.h" + textual header "/usr/include/llvm-10/llvm/Remarks/Remark.h" + textual header "/usr/include/llvm-10/llvm/Remarks/RemarkFormat.h" + textual header "/usr/include/llvm-10/llvm/Remarks/RemarkLinker.h" + textual header "/usr/include/llvm-10/llvm/Remarks/RemarkParser.h" + textual header "/usr/include/llvm-10/llvm/Remarks/RemarkSerializer.h" + textual header "/usr/include/llvm-10/llvm/Remarks/RemarkStringTable.h" + textual header "/usr/include/llvm-10/llvm/Remarks/YAMLRemarkSerializer.h" + textual header "/usr/include/llvm-10/llvm/Support/AArch64TargetParser.def" + textual header "/usr/include/llvm-10/llvm/Support/AArch64TargetParser.h" + textual header "/usr/include/llvm-10/llvm/Support/AMDGPUMetadata.h" + textual header "/usr/include/llvm-10/llvm/Support/AMDHSAKernelDescriptor.h" + textual header "/usr/include/llvm-10/llvm/Support/ARMAttributeParser.h" + textual header "/usr/include/llvm-10/llvm/Support/ARMBuildAttributes.h" + textual header "/usr/include/llvm-10/llvm/Support/ARMEHABI.h" + textual header "/usr/include/llvm-10/llvm/Support/ARMTargetParser.def" + textual header "/usr/include/llvm-10/llvm/Support/ARMTargetParser.h" + textual header "/usr/include/llvm-10/llvm/Support/ARMWinEH.h" + textual header "/usr/include/llvm-10/llvm/Support/AlignOf.h" + textual header "/usr/include/llvm-10/llvm/Support/Alignment.h" + textual header "/usr/include/llvm-10/llvm/Support/Allocator.h" + textual header "/usr/include/llvm-10/llvm/Support/ArrayRecycler.h" + textual header "/usr/include/llvm-10/llvm/Support/Atomic.h" + textual header "/usr/include/llvm-10/llvm/Support/AtomicOrdering.h" + textual header "/usr/include/llvm-10/llvm/Support/Automaton.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryByteStream.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryItemStream.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryStream.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryStreamArray.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryStreamError.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryStreamReader.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryStreamRef.h" + textual header "/usr/include/llvm-10/llvm/Support/BinaryStreamWriter.h" + textual header "/usr/include/llvm-10/llvm/Support/BlockFrequency.h" + textual header "/usr/include/llvm-10/llvm/Support/BranchProbability.h" + textual header "/usr/include/llvm-10/llvm/Support/BuryPointer.h" + textual header "/usr/include/llvm-10/llvm/Support/CBindingWrapping.h" + textual header "/usr/include/llvm-10/llvm/Support/CFGUpdate.h" + textual header "/usr/include/llvm-10/llvm/Support/COM.h" + textual header "/usr/include/llvm-10/llvm/Support/CRC.h" + textual header "/usr/include/llvm-10/llvm/Support/CachePruning.h" + textual header "/usr/include/llvm-10/llvm/Support/Capacity.h" + textual header "/usr/include/llvm-10/llvm/Support/Casting.h" + textual header "/usr/include/llvm-10/llvm/Support/CheckedArithmetic.h" + textual header "/usr/include/llvm-10/llvm/Support/Chrono.h" + textual header "/usr/include/llvm-10/llvm/Support/CodeGen.h" + textual header "/usr/include/llvm-10/llvm/Support/CodeGenCoverage.h" + textual header "/usr/include/llvm-10/llvm/Support/CommandLine.h" + textual header "/usr/include/llvm-10/llvm/Support/Compiler.h" + textual header "/usr/include/llvm-10/llvm/Support/Compression.h" + textual header "/usr/include/llvm-10/llvm/Support/ConvertUTF.h" + textual header "/usr/include/llvm-10/llvm/Support/CrashRecoveryContext.h" + textual header "/usr/include/llvm-10/llvm/Support/DJB.h" + textual header "/usr/include/llvm-10/llvm/Support/DOTGraphTraits.h" + textual header "/usr/include/llvm-10/llvm/Support/DataExtractor.h" + textual header "/usr/include/llvm-10/llvm/Support/DataTypes.h" + textual header "/usr/include/llvm-10/llvm/Support/Debug.h" + textual header "/usr/include/llvm-10/llvm/Support/DebugCounter.h" + textual header "/usr/include/llvm-10/llvm/Support/DynamicLibrary.h" + textual header "/usr/include/llvm-10/llvm/Support/Endian.h" + textual header "/usr/include/llvm-10/llvm/Support/EndianStream.h" + textual header "/usr/include/llvm-10/llvm/Support/Errc.h" + textual header "/usr/include/llvm-10/llvm/Support/Errno.h" + textual header "/usr/include/llvm-10/llvm/Support/Error.h" + textual header "/usr/include/llvm-10/llvm/Support/ErrorHandling.h" + textual header "/usr/include/llvm-10/llvm/Support/ErrorOr.h" + textual header "/usr/include/llvm-10/llvm/Support/Extension.def" + textual header "/usr/include/llvm-10/llvm/Support/FileCheck.h" + textual header "/usr/include/llvm-10/llvm/Support/FileCollector.h" + textual header "/usr/include/llvm-10/llvm/Support/FileOutputBuffer.h" + textual header "/usr/include/llvm-10/llvm/Support/FileSystem.h" + textual header "/usr/include/llvm-10/llvm/Support/FileUtilities.h" + textual header "/usr/include/llvm-10/llvm/Support/Format.h" + textual header "/usr/include/llvm-10/llvm/Support/FormatAdapters.h" + textual header "/usr/include/llvm-10/llvm/Support/FormatCommon.h" + textual header "/usr/include/llvm-10/llvm/Support/FormatProviders.h" + textual header "/usr/include/llvm-10/llvm/Support/FormatVariadic.h" + textual header "/usr/include/llvm-10/llvm/Support/FormatVariadicDetails.h" + textual header "/usr/include/llvm-10/llvm/Support/FormattedStream.h" + textual header "/usr/include/llvm-10/llvm/Support/GenericDomTree.h" + textual header "/usr/include/llvm-10/llvm/Support/GenericDomTreeConstruction.h" + textual header "/usr/include/llvm-10/llvm/Support/GenericIteratedDominanceFrontier.h" + textual header "/usr/include/llvm-10/llvm/Support/GlobPattern.h" + textual header "/usr/include/llvm-10/llvm/Support/GraphWriter.h" + textual header "/usr/include/llvm-10/llvm/Support/Host.h" + textual header "/usr/include/llvm-10/llvm/Support/InitLLVM.h" + textual header "/usr/include/llvm-10/llvm/Support/ItaniumManglingCanonicalizer.h" + textual header "/usr/include/llvm-10/llvm/Support/JSON.h" + textual header "/usr/include/llvm-10/llvm/Support/KnownBits.h" + textual header "/usr/include/llvm-10/llvm/Support/LEB128.h" + textual header "/usr/include/llvm-10/llvm/Support/LineIterator.h" + textual header "/usr/include/llvm-10/llvm/Support/Locale.h" + textual header "/usr/include/llvm-10/llvm/Support/LockFileManager.h" + textual header "/usr/include/llvm-10/llvm/Support/LowLevelTypeImpl.h" + textual header "/usr/include/llvm-10/llvm/Support/MD5.h" + textual header "/usr/include/llvm-10/llvm/Support/MSVCErrorWorkarounds.h" + textual header "/usr/include/llvm-10/llvm/Support/MachineValueType.h" + textual header "/usr/include/llvm-10/llvm/Support/ManagedStatic.h" + textual header "/usr/include/llvm-10/llvm/Support/MathExtras.h" + textual header "/usr/include/llvm-10/llvm/Support/MemAlloc.h" + textual header "/usr/include/llvm-10/llvm/Support/Memory.h" + textual header "/usr/include/llvm-10/llvm/Support/MemoryBuffer.h" + textual header "/usr/include/llvm-10/llvm/Support/MipsABIFlags.h" + textual header "/usr/include/llvm-10/llvm/Support/Mutex.h" + textual header "/usr/include/llvm-10/llvm/Support/NativeFormatting.h" + textual header "/usr/include/llvm-10/llvm/Support/OnDiskHashTable.h" + textual header "/usr/include/llvm-10/llvm/Support/Parallel.h" + textual header "/usr/include/llvm-10/llvm/Support/Path.h" + textual header "/usr/include/llvm-10/llvm/Support/PluginLoader.h" + textual header "/usr/include/llvm-10/llvm/Support/PointerLikeTypeTraits.h" + textual header "/usr/include/llvm-10/llvm/Support/PrettyStackTrace.h" + textual header "/usr/include/llvm-10/llvm/Support/Printable.h" + textual header "/usr/include/llvm-10/llvm/Support/Process.h" + textual header "/usr/include/llvm-10/llvm/Support/Program.h" + textual header "/usr/include/llvm-10/llvm/Support/RWMutex.h" + textual header "/usr/include/llvm-10/llvm/Support/RandomNumberGenerator.h" + textual header "/usr/include/llvm-10/llvm/Support/Recycler.h" + textual header "/usr/include/llvm-10/llvm/Support/RecyclingAllocator.h" + textual header "/usr/include/llvm-10/llvm/Support/Regex.h" + textual header "/usr/include/llvm-10/llvm/Support/Registry.h" + textual header "/usr/include/llvm-10/llvm/Support/ReverseIteration.h" + textual header "/usr/include/llvm-10/llvm/Support/SHA1.h" + textual header "/usr/include/llvm-10/llvm/Support/SMLoc.h" + textual header "/usr/include/llvm-10/llvm/Support/SMTAPI.h" + textual header "/usr/include/llvm-10/llvm/Support/SaveAndRestore.h" + textual header "/usr/include/llvm-10/llvm/Support/ScaledNumber.h" + textual header "/usr/include/llvm-10/llvm/Support/ScopedPrinter.h" + textual header "/usr/include/llvm-10/llvm/Support/Signals.h" + textual header "/usr/include/llvm-10/llvm/Support/Signposts.h" + textual header "/usr/include/llvm-10/llvm/Support/SmallVectorMemoryBuffer.h" + textual header "/usr/include/llvm-10/llvm/Support/Solaris/sys/regset.h" + textual header "/usr/include/llvm-10/llvm/Support/SourceMgr.h" + textual header "/usr/include/llvm-10/llvm/Support/SpecialCaseList.h" + textual header "/usr/include/llvm-10/llvm/Support/StringPool.h" + textual header "/usr/include/llvm-10/llvm/Support/StringSaver.h" + textual header "/usr/include/llvm-10/llvm/Support/SwapByteOrder.h" + textual header "/usr/include/llvm-10/llvm/Support/SymbolRemappingReader.h" + textual header "/usr/include/llvm-10/llvm/Support/SystemUtils.h" + textual header "/usr/include/llvm-10/llvm/Support/TarWriter.h" + textual header "/usr/include/llvm-10/llvm/Support/TargetOpcodes.def" + textual header "/usr/include/llvm-10/llvm/Support/TargetParser.h" + textual header "/usr/include/llvm-10/llvm/Support/TargetRegistry.h" + textual header "/usr/include/llvm-10/llvm/Support/TargetSelect.h" + textual header "/usr/include/llvm-10/llvm/Support/TaskQueue.h" + textual header "/usr/include/llvm-10/llvm/Support/ThreadLocal.h" + textual header "/usr/include/llvm-10/llvm/Support/ThreadPool.h" + textual header "/usr/include/llvm-10/llvm/Support/Threading.h" + textual header "/usr/include/llvm-10/llvm/Support/TimeProfiler.h" + textual header "/usr/include/llvm-10/llvm/Support/Timer.h" + textual header "/usr/include/llvm-10/llvm/Support/ToolOutputFile.h" + textual header "/usr/include/llvm-10/llvm/Support/TrailingObjects.h" + textual header "/usr/include/llvm-10/llvm/Support/TrigramIndex.h" + textual header "/usr/include/llvm-10/llvm/Support/TypeName.h" + textual header "/usr/include/llvm-10/llvm/Support/TypeSize.h" + textual header "/usr/include/llvm-10/llvm/Support/Unicode.h" + textual header "/usr/include/llvm-10/llvm/Support/UnicodeCharRanges.h" + textual header "/usr/include/llvm-10/llvm/Support/VCSRevision.h" + textual header "/usr/include/llvm-10/llvm/Support/Valgrind.h" + textual header "/usr/include/llvm-10/llvm/Support/VersionTuple.h" + textual header "/usr/include/llvm-10/llvm/Support/VirtualFileSystem.h" + textual header "/usr/include/llvm-10/llvm/Support/Watchdog.h" + textual header "/usr/include/llvm-10/llvm/Support/Win64EH.h" + textual header "/usr/include/llvm-10/llvm/Support/Windows/WindowsSupport.h" + textual header "/usr/include/llvm-10/llvm/Support/WindowsError.h" + textual header "/usr/include/llvm-10/llvm/Support/WithColor.h" + textual header "/usr/include/llvm-10/llvm/Support/X86DisassemblerDecoderCommon.h" + textual header "/usr/include/llvm-10/llvm/Support/X86TargetParser.def" + textual header "/usr/include/llvm-10/llvm/Support/YAMLParser.h" + textual header "/usr/include/llvm-10/llvm/Support/YAMLTraits.h" + textual header "/usr/include/llvm-10/llvm/Support/circular_raw_ostream.h" + textual header "/usr/include/llvm-10/llvm/Support/raw_os_ostream.h" + textual header "/usr/include/llvm-10/llvm/Support/raw_ostream.h" + textual header "/usr/include/llvm-10/llvm/Support/raw_sha1_ostream.h" + textual header "/usr/include/llvm-10/llvm/Support/thread.h" + textual header "/usr/include/llvm-10/llvm/Support/type_traits.h" + textual header "/usr/include/llvm-10/llvm/Support/xxhash.h" + textual header "/usr/include/llvm-10/llvm/TableGen/Automaton.td" + textual header "/usr/include/llvm-10/llvm/TableGen/Error.h" + textual header "/usr/include/llvm-10/llvm/TableGen/Main.h" + textual header "/usr/include/llvm-10/llvm/TableGen/Record.h" + textual header "/usr/include/llvm-10/llvm/TableGen/SearchableTable.td" + textual header "/usr/include/llvm-10/llvm/TableGen/SetTheory.h" + textual header "/usr/include/llvm-10/llvm/TableGen/StringMatcher.h" + textual header "/usr/include/llvm-10/llvm/TableGen/StringToOffsetTable.h" + textual header "/usr/include/llvm-10/llvm/TableGen/TableGenBackend.h" + textual header "/usr/include/llvm-10/llvm/Target/CodeGenCWrappers.h" + textual header "/usr/include/llvm-10/llvm/Target/GenericOpcodes.td" + textual header "/usr/include/llvm-10/llvm/Target/GlobalISel/Combine.td" + textual header "/usr/include/llvm-10/llvm/Target/GlobalISel/RegisterBank.td" + textual header "/usr/include/llvm-10/llvm/Target/GlobalISel/SelectionDAGCompat.td" + textual header "/usr/include/llvm-10/llvm/Target/GlobalISel/Target.td" + textual header "/usr/include/llvm-10/llvm/Target/Target.td" + textual header "/usr/include/llvm-10/llvm/Target/TargetCallingConv.td" + textual header "/usr/include/llvm-10/llvm/Target/TargetInstrPredicate.td" + textual header "/usr/include/llvm-10/llvm/Target/TargetIntrinsicInfo.h" + textual header "/usr/include/llvm-10/llvm/Target/TargetItinerary.td" + textual header "/usr/include/llvm-10/llvm/Target/TargetLoweringObjectFile.h" + textual header "/usr/include/llvm-10/llvm/Target/TargetMachine.h" + textual header "/usr/include/llvm-10/llvm/Target/TargetOptions.h" + textual header "/usr/include/llvm-10/llvm/Target/TargetPfmCounters.td" + textual header "/usr/include/llvm-10/llvm/Target/TargetSchedule.td" + textual header "/usr/include/llvm-10/llvm/Target/TargetSelectionDAG.td" + textual header "/usr/include/llvm-10/llvm/Testing/Support/Annotations.h" + textual header "/usr/include/llvm-10/llvm/Testing/Support/Error.h" + textual header "/usr/include/llvm-10/llvm/Testing/Support/SupportHelpers.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/ELF/ELFStub.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/ELF/TBEHandler.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/Architecture.def" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/Architecture.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/ArchitectureSet.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/InterfaceFile.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/PackedVersion.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/Platform.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/Symbol.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/Target.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/TextAPIReader.h" + textual header "/usr/include/llvm-10/llvm/TextAPI/MachO/TextAPIWriter.h" + textual header "/usr/include/llvm-10/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h" + textual header "/usr/include/llvm-10/llvm/ToolDrivers/llvm-lib/LibDriver.h" + textual header "/usr/include/llvm-10/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h" + textual header "/usr/include/llvm-10/llvm/Transforms/CFGuard.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Coroutines.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/AlwaysInliner.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/ArgumentPromotion.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/Attributor.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/CalledValuePropagation.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/ConstantMerge.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/CrossDSOCFI.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/DeadArgumentElimination.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/ElimAvailExtern.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/ForceFunctionAttrs.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/FunctionAttrs.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/FunctionImport.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/GlobalDCE.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/GlobalOpt.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/GlobalSplit.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/HotColdSplitting.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/InferFunctionAttrs.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/Inliner.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/Internalize.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/LowerTypeTests.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/MergeFunctions.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/PartialInlining.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/PassManagerBuilder.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/SCCP.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/SampleProfile.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/StripDeadPrototypes.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/SyntheticCountsPropagation.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h" + textual header "/usr/include/llvm-10/llvm/Transforms/IPO/WholeProgramDevirt.h" + textual header "/usr/include/llvm-10/llvm/Transforms/InstCombine/InstCombine.h" + textual header "/usr/include/llvm-10/llvm/Transforms/InstCombine/InstCombineWorklist.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/AddressSanitizer.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/BoundsChecking.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/CGProfile.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/ControlHeightReduction.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/GCOVProfiler.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/HWAddressSanitizer.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/InstrOrderFile.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/InstrProfiling.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/MemorySanitizer.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/PGOInstrumentation.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/PoisonChecking.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/SanitizerCoverage.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Instrumentation/ThreadSanitizer.h" + textual header "/usr/include/llvm-10/llvm/Transforms/ObjCARC.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/ADCE.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/AlignmentFromAssumptions.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/BDCE.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/CallSiteSplitting.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/ConstantHoisting.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/CorrelatedValuePropagation.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/DCE.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/DeadStoreElimination.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/DivRemPairs.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/EarlyCSE.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/Float2Int.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/GVN.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/GVNExpression.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/GuardWidening.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/IVUsersPrinter.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/IndVarSimplify.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/InstSimplifyPass.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/JumpThreading.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LICM.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopDataPrefetch.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopDeletion.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopDistribute.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopFuse.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopIdiomRecognize.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopInstSimplify.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopLoadElimination.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopPassManager.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopPredication.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopRotation.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopSimplifyCFG.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopSink.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopStrengthReduce.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LoopUnrollPass.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LowerAtomic.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LowerConstantIntrinsics.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LowerExpectIntrinsic.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LowerGuardIntrinsic.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/LowerWidenableCondition.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/MakeGuardsExplicit.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/MemCpyOptimizer.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/MergeICmps.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/MergedLoadStoreMotion.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/NaryReassociate.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/NewGVN.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/Reassociate.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/RewriteStatepointsForGC.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/SCCP.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/SROA.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/Scalarizer.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/SimpleLoopUnswitch.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/SimplifyCFG.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/Sink.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/SpeculateAroundPHIs.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/SpeculativeExecution.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/TailRecursionElimination.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Scalar/WarnMissedTransforms.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/ASanStackFrameLayout.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/AddDiscriminators.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/BasicBlockUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/BreakCriticalEdges.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/BuildLibCalls.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/BypassSlowDivision.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/CallPromotionUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/CanonicalizeAliases.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/Cloning.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/CodeExtractor.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/CodeMoverUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/CtorUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/Debugify.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/EntryExitInstrumenter.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/EscapeEnumerator.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/Evaluator.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/FunctionComparator.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/FunctionImportUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/GlobalStatus.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/GuardUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/InjectTLIMappings.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/IntegerDivision.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LCSSA.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LibCallsShrinkWrap.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/Local.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LoopRotationUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LoopSimplify.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LoopUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LoopVersioning.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LowerInvoke.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/LowerMemIntrinsics.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/Mem2Reg.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/MisExpect.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/ModuleUtils.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/NameAnonGlobals.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/PredicateInfo.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/PromoteMemToReg.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SSAUpdater.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SSAUpdaterBulk.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SSAUpdaterImpl.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SanitizerStats.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SimplifyIndVar.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SimplifyLibCalls.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SizeOpts.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SplitModule.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/SymbolRewriter.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/UnifyFunctionExitNodes.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/UnrollLoop.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/VNCoercion.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Utils/ValueMapper.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Vectorize.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Vectorize/LoadStoreVectorizer.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Vectorize/LoopVectorizationLegality.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Vectorize/LoopVectorize.h" + textual header "/usr/include/llvm-10/llvm/Transforms/Vectorize/SLPVectorizer.h" + textual header "/usr/include/llvm-10/llvm/WindowsManifest/WindowsManifestMerger.h" + textual header "/usr/include/llvm-10/llvm/WindowsResource/ResourceProcessor.h" + textual header "/usr/include/llvm-10/llvm/WindowsResource/ResourceScriptToken.h" + textual header "/usr/include/llvm-10/llvm/WindowsResource/ResourceScriptTokenList.h" + textual header "/usr/include/llvm-10/llvm/XRay/BlockIndexer.h" + textual header "/usr/include/llvm-10/llvm/XRay/BlockPrinter.h" + textual header "/usr/include/llvm-10/llvm/XRay/BlockVerifier.h" + textual header "/usr/include/llvm-10/llvm/XRay/FDRLogBuilder.h" + textual header "/usr/include/llvm-10/llvm/XRay/FDRRecordConsumer.h" + textual header "/usr/include/llvm-10/llvm/XRay/FDRRecordProducer.h" + textual header "/usr/include/llvm-10/llvm/XRay/FDRRecords.h" + textual header "/usr/include/llvm-10/llvm/XRay/FDRTraceExpander.h" + textual header "/usr/include/llvm-10/llvm/XRay/FDRTraceWriter.h" + textual header "/usr/include/llvm-10/llvm/XRay/FileHeaderReader.h" + textual header "/usr/include/llvm-10/llvm/XRay/Graph.h" + textual header "/usr/include/llvm-10/llvm/XRay/InstrumentationMap.h" + textual header "/usr/include/llvm-10/llvm/XRay/Profile.h" + textual header "/usr/include/llvm-10/llvm/XRay/RecordPrinter.h" + textual header "/usr/include/llvm-10/llvm/XRay/Trace.h" + textual header "/usr/include/llvm-10/llvm/XRay/XRayRecord.h" + textual header "/usr/include/llvm-10/llvm/XRay/YAMLXRayRecord.h" + textual header "/usr/include/llvm-c-10/llvm-c/Analysis.h" + textual header "/usr/include/llvm-c-10/llvm-c/BitReader.h" + textual header "/usr/include/llvm-c-10/llvm-c/BitWriter.h" + textual header "/usr/include/llvm-c-10/llvm-c/Comdat.h" + textual header "/usr/include/llvm-c-10/llvm-c/Core.h" + textual header "/usr/include/llvm-c-10/llvm-c/DataTypes.h" + textual header "/usr/include/llvm-c-10/llvm-c/DebugInfo.h" + textual header "/usr/include/llvm-c-10/llvm-c/Disassembler.h" + textual header "/usr/include/llvm-c-10/llvm-c/DisassemblerTypes.h" + textual header "/usr/include/llvm-c-10/llvm-c/Error.h" + textual header "/usr/include/llvm-c-10/llvm-c/ErrorHandling.h" + textual header "/usr/include/llvm-c-10/llvm-c/ExecutionEngine.h" + textual header "/usr/include/llvm-c-10/llvm-c/ExternC.h" + textual header "/usr/include/llvm-c-10/llvm-c/IRReader.h" + textual header "/usr/include/llvm-c-10/llvm-c/Initialization.h" + textual header "/usr/include/llvm-c-10/llvm-c/LinkTimeOptimizer.h" + textual header "/usr/include/llvm-c-10/llvm-c/Linker.h" + textual header "/usr/include/llvm-c-10/llvm-c/Object.h" + textual header "/usr/include/llvm-c-10/llvm-c/OrcBindings.h" + textual header "/usr/include/llvm-c-10/llvm-c/Remarks.h" + textual header "/usr/include/llvm-c-10/llvm-c/Support.h" + textual header "/usr/include/llvm-c-10/llvm-c/Target.h" + textual header "/usr/include/llvm-c-10/llvm-c/TargetMachine.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/AggressiveInstCombine.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/Coroutines.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/IPO.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/InstCombine.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/PassManagerBuilder.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/Scalar.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/Utils.h" + textual header "/usr/include/llvm-c-10/llvm-c/Transforms/Vectorize.h" + textual header "/usr/include/llvm-c-10/llvm-c/Types.h" + textual header "/usr/include/llvm-c-10/llvm-c/lto.h" + textual header "/usr/include/llvm-c/Analysis.h" + textual header "/usr/include/llvm-c/BitReader.h" + textual header "/usr/include/llvm-c/BitWriter.h" + textual header "/usr/include/llvm-c/Comdat.h" + textual header "/usr/include/llvm-c/Core.h" + textual header "/usr/include/llvm-c/DataTypes.h" + textual header "/usr/include/llvm-c/DebugInfo.h" + textual header "/usr/include/llvm-c/Disassembler.h" + textual header "/usr/include/llvm-c/DisassemblerTypes.h" + textual header "/usr/include/llvm-c/Error.h" + textual header "/usr/include/llvm-c/ErrorHandling.h" + textual header "/usr/include/llvm-c/ExecutionEngine.h" + textual header "/usr/include/llvm-c/ExternC.h" + textual header "/usr/include/llvm-c/IRReader.h" + textual header "/usr/include/llvm-c/Initialization.h" + textual header "/usr/include/llvm-c/LinkTimeOptimizer.h" + textual header "/usr/include/llvm-c/Linker.h" + textual header "/usr/include/llvm-c/Object.h" + textual header "/usr/include/llvm-c/OrcBindings.h" + textual header "/usr/include/llvm-c/Remarks.h" + textual header "/usr/include/llvm-c/Support.h" + textual header "/usr/include/llvm-c/Target.h" + textual header "/usr/include/llvm-c/TargetMachine.h" + textual header "/usr/include/llvm-c/Transforms/AggressiveInstCombine.h" + textual header "/usr/include/llvm-c/Transforms/Coroutines.h" + textual header "/usr/include/llvm-c/Transforms/IPO.h" + textual header "/usr/include/llvm-c/Transforms/InstCombine.h" + textual header "/usr/include/llvm-c/Transforms/PassManagerBuilder.h" + textual header "/usr/include/llvm-c/Transforms/Scalar.h" + textual header "/usr/include/llvm-c/Transforms/Utils.h" + textual header "/usr/include/llvm-c/Transforms/Vectorize.h" + textual header "/usr/include/llvm-c/Types.h" + textual header "/usr/include/llvm-c/lto.h" + textual header "/usr/include/llvm/ADT/APFloat.h" + textual header "/usr/include/llvm/ADT/APInt.h" + textual header "/usr/include/llvm/ADT/APSInt.h" + textual header "/usr/include/llvm/ADT/AllocatorList.h" + textual header "/usr/include/llvm/ADT/Any.h" + textual header "/usr/include/llvm/ADT/ArrayRef.h" + textual header "/usr/include/llvm/ADT/BitVector.h" + textual header "/usr/include/llvm/ADT/BitmaskEnum.h" + textual header "/usr/include/llvm/ADT/BreadthFirstIterator.h" + textual header "/usr/include/llvm/ADT/CachedHashString.h" + textual header "/usr/include/llvm/ADT/DAGDeltaAlgorithm.h" + textual header "/usr/include/llvm/ADT/DeltaAlgorithm.h" + textual header "/usr/include/llvm/ADT/DenseMap.h" + textual header "/usr/include/llvm/ADT/DenseMapInfo.h" + textual header "/usr/include/llvm/ADT/DenseSet.h" + textual header "/usr/include/llvm/ADT/DepthFirstIterator.h" + textual header "/usr/include/llvm/ADT/DirectedGraph.h" + textual header "/usr/include/llvm/ADT/EnumeratedArray.h" + textual header "/usr/include/llvm/ADT/EpochTracker.h" + textual header "/usr/include/llvm/ADT/EquivalenceClasses.h" + textual header "/usr/include/llvm/ADT/FloatingPointMode.h" + textual header "/usr/include/llvm/ADT/FoldingSet.h" + textual header "/usr/include/llvm/ADT/FunctionExtras.h" + textual header "/usr/include/llvm/ADT/GraphTraits.h" + textual header "/usr/include/llvm/ADT/Hashing.h" + textual header "/usr/include/llvm/ADT/ImmutableList.h" + textual header "/usr/include/llvm/ADT/ImmutableMap.h" + textual header "/usr/include/llvm/ADT/ImmutableSet.h" + textual header "/usr/include/llvm/ADT/IndexedMap.h" + textual header "/usr/include/llvm/ADT/IntEqClasses.h" + textual header "/usr/include/llvm/ADT/IntervalMap.h" + textual header "/usr/include/llvm/ADT/IntrusiveRefCntPtr.h" + textual header "/usr/include/llvm/ADT/MapVector.h" + textual header "/usr/include/llvm/ADT/None.h" + textual header "/usr/include/llvm/ADT/Optional.h" + textual header "/usr/include/llvm/ADT/PackedVector.h" + textual header "/usr/include/llvm/ADT/PointerEmbeddedInt.h" + textual header "/usr/include/llvm/ADT/PointerIntPair.h" + textual header "/usr/include/llvm/ADT/PointerSumType.h" + textual header "/usr/include/llvm/ADT/PointerUnion.h" + textual header "/usr/include/llvm/ADT/PostOrderIterator.h" + textual header "/usr/include/llvm/ADT/PriorityQueue.h" + textual header "/usr/include/llvm/ADT/PriorityWorklist.h" + textual header "/usr/include/llvm/ADT/SCCIterator.h" + textual header "/usr/include/llvm/ADT/STLExtras.h" + textual header "/usr/include/llvm/ADT/ScopeExit.h" + textual header "/usr/include/llvm/ADT/ScopedHashTable.h" + textual header "/usr/include/llvm/ADT/Sequence.h" + textual header "/usr/include/llvm/ADT/SetOperations.h" + textual header "/usr/include/llvm/ADT/SetVector.h" + textual header "/usr/include/llvm/ADT/SmallBitVector.h" + textual header "/usr/include/llvm/ADT/SmallPtrSet.h" + textual header "/usr/include/llvm/ADT/SmallSet.h" + textual header "/usr/include/llvm/ADT/SmallString.h" + textual header "/usr/include/llvm/ADT/SmallVector.h" + textual header "/usr/include/llvm/ADT/SparseBitVector.h" + textual header "/usr/include/llvm/ADT/SparseMultiSet.h" + textual header "/usr/include/llvm/ADT/SparseSet.h" + textual header "/usr/include/llvm/ADT/Statistic.h" + textual header "/usr/include/llvm/ADT/StringExtras.h" + textual header "/usr/include/llvm/ADT/StringMap.h" + textual header "/usr/include/llvm/ADT/StringRef.h" + textual header "/usr/include/llvm/ADT/StringSet.h" + textual header "/usr/include/llvm/ADT/StringSwitch.h" + textual header "/usr/include/llvm/ADT/TinyPtrVector.h" + textual header "/usr/include/llvm/ADT/Triple.h" + textual header "/usr/include/llvm/ADT/Twine.h" + textual header "/usr/include/llvm/ADT/UniqueVector.h" + textual header "/usr/include/llvm/ADT/bit.h" + textual header "/usr/include/llvm/ADT/edit_distance.h" + textual header "/usr/include/llvm/ADT/fallible_iterator.h" + textual header "/usr/include/llvm/ADT/ilist.h" + textual header "/usr/include/llvm/ADT/ilist_base.h" + textual header "/usr/include/llvm/ADT/ilist_iterator.h" + textual header "/usr/include/llvm/ADT/ilist_node.h" + textual header "/usr/include/llvm/ADT/ilist_node_base.h" + textual header "/usr/include/llvm/ADT/ilist_node_options.h" + textual header "/usr/include/llvm/ADT/iterator.h" + textual header "/usr/include/llvm/ADT/iterator_range.h" + textual header "/usr/include/llvm/ADT/simple_ilist.h" + textual header "/usr/include/llvm/Analysis/AliasAnalysis.h" + textual header "/usr/include/llvm/Analysis/AliasAnalysisEvaluator.h" + textual header "/usr/include/llvm/Analysis/AliasSetTracker.h" + textual header "/usr/include/llvm/Analysis/AssumptionCache.h" + textual header "/usr/include/llvm/Analysis/BasicAliasAnalysis.h" + textual header "/usr/include/llvm/Analysis/BlockFrequencyInfo.h" + textual header "/usr/include/llvm/Analysis/BlockFrequencyInfoImpl.h" + textual header "/usr/include/llvm/Analysis/BranchProbabilityInfo.h" + textual header "/usr/include/llvm/Analysis/CFG.h" + textual header "/usr/include/llvm/Analysis/CFGPrinter.h" + textual header "/usr/include/llvm/Analysis/CFLAliasAnalysisUtils.h" + textual header "/usr/include/llvm/Analysis/CFLAndersAliasAnalysis.h" + textual header "/usr/include/llvm/Analysis/CFLSteensAliasAnalysis.h" + textual header "/usr/include/llvm/Analysis/CGSCCPassManager.h" + textual header "/usr/include/llvm/Analysis/CallGraph.h" + textual header "/usr/include/llvm/Analysis/CallGraphSCCPass.h" + textual header "/usr/include/llvm/Analysis/CallPrinter.h" + textual header "/usr/include/llvm/Analysis/CaptureTracking.h" + textual header "/usr/include/llvm/Analysis/CmpInstAnalysis.h" + textual header "/usr/include/llvm/Analysis/CodeMetrics.h" + textual header "/usr/include/llvm/Analysis/ConstantFolding.h" + textual header "/usr/include/llvm/Analysis/DDG.h" + textual header "/usr/include/llvm/Analysis/DOTGraphTraitsPass.h" + textual header "/usr/include/llvm/Analysis/DemandedBits.h" + textual header "/usr/include/llvm/Analysis/DependenceAnalysis.h" + textual header "/usr/include/llvm/Analysis/DependenceGraphBuilder.h" + textual header "/usr/include/llvm/Analysis/DivergenceAnalysis.h" + textual header "/usr/include/llvm/Analysis/DomPrinter.h" + textual header "/usr/include/llvm/Analysis/DomTreeUpdater.h" + textual header "/usr/include/llvm/Analysis/DominanceFrontier.h" + textual header "/usr/include/llvm/Analysis/DominanceFrontierImpl.h" + textual header "/usr/include/llvm/Analysis/EHPersonalities.h" + textual header "/usr/include/llvm/Analysis/GlobalsModRef.h" + textual header "/usr/include/llvm/Analysis/GuardUtils.h" + textual header "/usr/include/llvm/Analysis/IVDescriptors.h" + textual header "/usr/include/llvm/Analysis/IVUsers.h" + textual header "/usr/include/llvm/Analysis/IndirectCallPromotionAnalysis.h" + textual header "/usr/include/llvm/Analysis/IndirectCallVisitor.h" + textual header "/usr/include/llvm/Analysis/InlineCost.h" + textual header "/usr/include/llvm/Analysis/InstructionPrecedenceTracking.h" + textual header "/usr/include/llvm/Analysis/InstructionSimplify.h" + textual header "/usr/include/llvm/Analysis/Interval.h" + textual header "/usr/include/llvm/Analysis/IntervalIterator.h" + textual header "/usr/include/llvm/Analysis/IntervalPartition.h" + textual header "/usr/include/llvm/Analysis/IteratedDominanceFrontier.h" + textual header "/usr/include/llvm/Analysis/LazyBlockFrequencyInfo.h" + textual header "/usr/include/llvm/Analysis/LazyBranchProbabilityInfo.h" + textual header "/usr/include/llvm/Analysis/LazyCallGraph.h" + textual header "/usr/include/llvm/Analysis/LazyValueInfo.h" + textual header "/usr/include/llvm/Analysis/LegacyDivergenceAnalysis.h" + textual header "/usr/include/llvm/Analysis/Lint.h" + textual header "/usr/include/llvm/Analysis/Loads.h" + textual header "/usr/include/llvm/Analysis/LoopAccessAnalysis.h" + textual header "/usr/include/llvm/Analysis/LoopAnalysisManager.h" + textual header "/usr/include/llvm/Analysis/LoopCacheAnalysis.h" + textual header "/usr/include/llvm/Analysis/LoopInfo.h" + textual header "/usr/include/llvm/Analysis/LoopInfoImpl.h" + textual header "/usr/include/llvm/Analysis/LoopIterator.h" + textual header "/usr/include/llvm/Analysis/LoopPass.h" + textual header "/usr/include/llvm/Analysis/LoopUnrollAnalyzer.h" + textual header "/usr/include/llvm/Analysis/MemoryBuiltins.h" + textual header "/usr/include/llvm/Analysis/MemoryDependenceAnalysis.h" + textual header "/usr/include/llvm/Analysis/MemoryLocation.h" + textual header "/usr/include/llvm/Analysis/MemorySSA.h" + textual header "/usr/include/llvm/Analysis/MemorySSAUpdater.h" + textual header "/usr/include/llvm/Analysis/ModuleSummaryAnalysis.h" + textual header "/usr/include/llvm/Analysis/MustExecute.h" + textual header "/usr/include/llvm/Analysis/ObjCARCAliasAnalysis.h" + textual header "/usr/include/llvm/Analysis/ObjCARCAnalysisUtils.h" + textual header "/usr/include/llvm/Analysis/ObjCARCInstKind.h" + textual header "/usr/include/llvm/Analysis/OptimizationRemarkEmitter.h" + textual header "/usr/include/llvm/Analysis/OrderedBasicBlock.h" + textual header "/usr/include/llvm/Analysis/OrderedInstructions.h" + textual header "/usr/include/llvm/Analysis/PHITransAddr.h" + textual header "/usr/include/llvm/Analysis/Passes.h" + textual header "/usr/include/llvm/Analysis/PhiValues.h" + textual header "/usr/include/llvm/Analysis/PostDominators.h" + textual header "/usr/include/llvm/Analysis/ProfileSummaryInfo.h" + textual header "/usr/include/llvm/Analysis/PtrUseVisitor.h" + textual header "/usr/include/llvm/Analysis/RegionInfo.h" + textual header "/usr/include/llvm/Analysis/RegionInfoImpl.h" + textual header "/usr/include/llvm/Analysis/RegionIterator.h" + textual header "/usr/include/llvm/Analysis/RegionPass.h" + textual header "/usr/include/llvm/Analysis/RegionPrinter.h" + textual header "/usr/include/llvm/Analysis/ScalarEvolution.h" + textual header "/usr/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h" + textual header "/usr/include/llvm/Analysis/ScalarEvolutionExpander.h" + textual header "/usr/include/llvm/Analysis/ScalarEvolutionExpressions.h" + textual header "/usr/include/llvm/Analysis/ScalarEvolutionNormalization.h" + textual header "/usr/include/llvm/Analysis/ScopedNoAliasAA.h" + textual header "/usr/include/llvm/Analysis/SparsePropagation.h" + textual header "/usr/include/llvm/Analysis/StackSafetyAnalysis.h" + textual header "/usr/include/llvm/Analysis/SyncDependenceAnalysis.h" + textual header "/usr/include/llvm/Analysis/SyntheticCountsUtils.h" + textual header "/usr/include/llvm/Analysis/TargetFolder.h" + textual header "/usr/include/llvm/Analysis/TargetLibraryInfo.def" + textual header "/usr/include/llvm/Analysis/TargetLibraryInfo.h" + textual header "/usr/include/llvm/Analysis/TargetTransformInfo.h" + textual header "/usr/include/llvm/Analysis/TargetTransformInfoImpl.h" + textual header "/usr/include/llvm/Analysis/Trace.h" + textual header "/usr/include/llvm/Analysis/TypeBasedAliasAnalysis.h" + textual header "/usr/include/llvm/Analysis/TypeMetadataUtils.h" + textual header "/usr/include/llvm/Analysis/Utils/Local.h" + textual header "/usr/include/llvm/Analysis/ValueLattice.h" + textual header "/usr/include/llvm/Analysis/ValueLatticeUtils.h" + textual header "/usr/include/llvm/Analysis/ValueTracking.h" + textual header "/usr/include/llvm/Analysis/VecFuncs.def" + textual header "/usr/include/llvm/Analysis/VectorUtils.h" + textual header "/usr/include/llvm/AsmParser/Parser.h" + textual header "/usr/include/llvm/AsmParser/SlotMapping.h" + textual header "/usr/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h" + textual header "/usr/include/llvm/BinaryFormat/COFF.h" + textual header "/usr/include/llvm/BinaryFormat/Dwarf.def" + textual header "/usr/include/llvm/BinaryFormat/Dwarf.h" + textual header "/usr/include/llvm/BinaryFormat/DynamicTags.def" + textual header "/usr/include/llvm/BinaryFormat/ELF.h" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/AArch64.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/ARC.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/ARM.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/AVR.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/BPF.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/Hexagon.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/Lanai.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/MSP430.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/Mips.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/PowerPC.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/RISCV.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/Sparc.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/SystemZ.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/i386.def" + textual header "/usr/include/llvm/BinaryFormat/ELFRelocs/x86_64.def" + textual header "/usr/include/llvm/BinaryFormat/MachO.def" + textual header "/usr/include/llvm/BinaryFormat/MachO.h" + textual header "/usr/include/llvm/BinaryFormat/Magic.h" + textual header "/usr/include/llvm/BinaryFormat/Minidump.h" + textual header "/usr/include/llvm/BinaryFormat/MinidumpConstants.def" + textual header "/usr/include/llvm/BinaryFormat/MsgPack.def" + textual header "/usr/include/llvm/BinaryFormat/MsgPack.h" + textual header "/usr/include/llvm/BinaryFormat/MsgPackDocument.h" + textual header "/usr/include/llvm/BinaryFormat/MsgPackReader.h" + textual header "/usr/include/llvm/BinaryFormat/MsgPackWriter.h" + textual header "/usr/include/llvm/BinaryFormat/Wasm.h" + textual header "/usr/include/llvm/BinaryFormat/WasmRelocs.def" + textual header "/usr/include/llvm/BinaryFormat/XCOFF.h" + textual header "/usr/include/llvm/Bitcode/BitcodeAnalyzer.h" + textual header "/usr/include/llvm/Bitcode/BitcodeReader.h" + textual header "/usr/include/llvm/Bitcode/BitcodeWriter.h" + textual header "/usr/include/llvm/Bitcode/BitcodeWriterPass.h" + textual header "/usr/include/llvm/Bitcode/LLVMBitCodes.h" + textual header "/usr/include/llvm/Bitstream/BitCodes.h" + textual header "/usr/include/llvm/Bitstream/BitstreamReader.h" + textual header "/usr/include/llvm/Bitstream/BitstreamWriter.h" + textual header "/usr/include/llvm/CodeGen/AccelTable.h" + textual header "/usr/include/llvm/CodeGen/Analysis.h" + textual header "/usr/include/llvm/CodeGen/AsmPrinter.h" + textual header "/usr/include/llvm/CodeGen/AsmPrinterHandler.h" + textual header "/usr/include/llvm/CodeGen/AtomicExpandUtils.h" + textual header "/usr/include/llvm/CodeGen/BasicTTIImpl.h" + textual header "/usr/include/llvm/CodeGen/BuiltinGCs.h" + textual header "/usr/include/llvm/CodeGen/CSEConfigBase.h" + textual header "/usr/include/llvm/CodeGen/CalcSpillWeights.h" + textual header "/usr/include/llvm/CodeGen/CallingConvLower.h" + textual header "/usr/include/llvm/CodeGen/CommandFlags.inc" + textual header "/usr/include/llvm/CodeGen/CostTable.h" + textual header "/usr/include/llvm/CodeGen/DAGCombine.h" + textual header "/usr/include/llvm/CodeGen/DFAPacketizer.h" + textual header "/usr/include/llvm/CodeGen/DIE.h" + textual header "/usr/include/llvm/CodeGen/DIEValue.def" + textual header "/usr/include/llvm/CodeGen/DbgEntityHistoryCalculator.h" + textual header "/usr/include/llvm/CodeGen/DebugHandlerBase.h" + textual header "/usr/include/llvm/CodeGen/DwarfStringPoolEntry.h" + textual header "/usr/include/llvm/CodeGen/EdgeBundles.h" + textual header "/usr/include/llvm/CodeGen/ExecutionDomainFix.h" + textual header "/usr/include/llvm/CodeGen/ExpandReductions.h" + textual header "/usr/include/llvm/CodeGen/FastISel.h" + textual header "/usr/include/llvm/CodeGen/FaultMaps.h" + textual header "/usr/include/llvm/CodeGen/FunctionLoweringInfo.h" + textual header "/usr/include/llvm/CodeGen/GCMetadata.h" + textual header "/usr/include/llvm/CodeGen/GCMetadataPrinter.h" + textual header "/usr/include/llvm/CodeGen/GCStrategy.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/CSEInfo.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/CallLowering.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/Combiner.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/CombinerHelper.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/CombinerInfo.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/GISelWorkList.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/IRTranslator.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/InstructionSelect.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/InstructionSelector.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/Legalizer.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/Localizer.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/RegBankSelect.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/RegisterBank.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/Types.h" + textual header "/usr/include/llvm/CodeGen/GlobalISel/Utils.h" + textual header "/usr/include/llvm/CodeGen/ISDOpcodes.h" + textual header "/usr/include/llvm/CodeGen/IntrinsicLowering.h" + textual header "/usr/include/llvm/CodeGen/LatencyPriorityQueue.h" + textual header "/usr/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h" + textual header "/usr/include/llvm/CodeGen/LexicalScopes.h" + textual header "/usr/include/llvm/CodeGen/LinkAllAsmWriterComponents.h" + textual header "/usr/include/llvm/CodeGen/LinkAllCodegenComponents.h" + textual header "/usr/include/llvm/CodeGen/LiveInterval.h" + textual header "/usr/include/llvm/CodeGen/LiveIntervalUnion.h" + textual header "/usr/include/llvm/CodeGen/LiveIntervals.h" + textual header "/usr/include/llvm/CodeGen/LivePhysRegs.h" + textual header "/usr/include/llvm/CodeGen/LiveRangeCalc.h" + textual header "/usr/include/llvm/CodeGen/LiveRangeEdit.h" + textual header "/usr/include/llvm/CodeGen/LiveRegMatrix.h" + textual header "/usr/include/llvm/CodeGen/LiveRegUnits.h" + textual header "/usr/include/llvm/CodeGen/LiveStacks.h" + textual header "/usr/include/llvm/CodeGen/LiveVariables.h" + textual header "/usr/include/llvm/CodeGen/LoopTraversal.h" + textual header "/usr/include/llvm/CodeGen/LowLevelType.h" + textual header "/usr/include/llvm/CodeGen/MIRFormatter.h" + textual header "/usr/include/llvm/CodeGen/MIRParser/MIParser.h" + textual header "/usr/include/llvm/CodeGen/MIRParser/MIRParser.h" + textual header "/usr/include/llvm/CodeGen/MIRPrinter.h" + textual header "/usr/include/llvm/CodeGen/MIRYamlMapping.h" + textual header "/usr/include/llvm/CodeGen/MachORelocation.h" + textual header "/usr/include/llvm/CodeGen/MachineBasicBlock.h" + textual header "/usr/include/llvm/CodeGen/MachineBlockFrequencyInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineBranchProbabilityInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineCombinerPattern.h" + textual header "/usr/include/llvm/CodeGen/MachineConstantPool.h" + textual header "/usr/include/llvm/CodeGen/MachineDominanceFrontier.h" + textual header "/usr/include/llvm/CodeGen/MachineDominators.h" + textual header "/usr/include/llvm/CodeGen/MachineFrameInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineFunction.h" + textual header "/usr/include/llvm/CodeGen/MachineFunctionPass.h" + textual header "/usr/include/llvm/CodeGen/MachineInstr.h" + textual header "/usr/include/llvm/CodeGen/MachineInstrBuilder.h" + textual header "/usr/include/llvm/CodeGen/MachineInstrBundle.h" + textual header "/usr/include/llvm/CodeGen/MachineInstrBundleIterator.h" + textual header "/usr/include/llvm/CodeGen/MachineJumpTableInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineLoopInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineLoopUtils.h" + textual header "/usr/include/llvm/CodeGen/MachineMemOperand.h" + textual header "/usr/include/llvm/CodeGen/MachineModuleInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineModuleInfoImpls.h" + textual header "/usr/include/llvm/CodeGen/MachineOperand.h" + textual header "/usr/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h" + textual header "/usr/include/llvm/CodeGen/MachineOutliner.h" + textual header "/usr/include/llvm/CodeGen/MachinePassRegistry.h" + textual header "/usr/include/llvm/CodeGen/MachinePipeliner.h" + textual header "/usr/include/llvm/CodeGen/MachinePostDominators.h" + textual header "/usr/include/llvm/CodeGen/MachineRegionInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineRegisterInfo.h" + textual header "/usr/include/llvm/CodeGen/MachineSSAUpdater.h" + textual header "/usr/include/llvm/CodeGen/MachineScheduler.h" + textual header "/usr/include/llvm/CodeGen/MachineSizeOpts.h" + textual header "/usr/include/llvm/CodeGen/MachineTraceMetrics.h" + textual header "/usr/include/llvm/CodeGen/MacroFusion.h" + textual header "/usr/include/llvm/CodeGen/ModuloSchedule.h" + textual header "/usr/include/llvm/CodeGen/NonRelocatableStringpool.h" + textual header "/usr/include/llvm/CodeGen/PBQP/CostAllocator.h" + textual header "/usr/include/llvm/CodeGen/PBQP/Graph.h" + textual header "/usr/include/llvm/CodeGen/PBQP/Math.h" + textual header "/usr/include/llvm/CodeGen/PBQP/ReductionRules.h" + textual header "/usr/include/llvm/CodeGen/PBQP/Solution.h" + textual header "/usr/include/llvm/CodeGen/PBQPRAConstraint.h" + textual header "/usr/include/llvm/CodeGen/ParallelCG.h" + textual header "/usr/include/llvm/CodeGen/Passes.h" + textual header "/usr/include/llvm/CodeGen/PreISelIntrinsicLowering.h" + textual header "/usr/include/llvm/CodeGen/PseudoSourceValue.h" + textual header "/usr/include/llvm/CodeGen/ReachingDefAnalysis.h" + textual header "/usr/include/llvm/CodeGen/RegAllocPBQP.h" + textual header "/usr/include/llvm/CodeGen/RegAllocRegistry.h" + textual header "/usr/include/llvm/CodeGen/Register.h" + textual header "/usr/include/llvm/CodeGen/RegisterClassInfo.h" + textual header "/usr/include/llvm/CodeGen/RegisterPressure.h" + textual header "/usr/include/llvm/CodeGen/RegisterScavenging.h" + textual header "/usr/include/llvm/CodeGen/RegisterUsageInfo.h" + textual header "/usr/include/llvm/CodeGen/ResourcePriorityQueue.h" + textual header "/usr/include/llvm/CodeGen/RuntimeLibcalls.h" + textual header "/usr/include/llvm/CodeGen/SDNodeProperties.td" + textual header "/usr/include/llvm/CodeGen/ScheduleDAG.h" + textual header "/usr/include/llvm/CodeGen/ScheduleDAGInstrs.h" + textual header "/usr/include/llvm/CodeGen/ScheduleDAGMutation.h" + textual header "/usr/include/llvm/CodeGen/ScheduleDFS.h" + textual header "/usr/include/llvm/CodeGen/ScheduleHazardRecognizer.h" + textual header "/usr/include/llvm/CodeGen/SchedulerRegistry.h" + textual header "/usr/include/llvm/CodeGen/ScoreboardHazardRecognizer.h" + textual header "/usr/include/llvm/CodeGen/SelectionDAG.h" + textual header "/usr/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h" + textual header "/usr/include/llvm/CodeGen/SelectionDAGISel.h" + textual header "/usr/include/llvm/CodeGen/SelectionDAGNodes.h" + textual header "/usr/include/llvm/CodeGen/SelectionDAGTargetInfo.h" + textual header "/usr/include/llvm/CodeGen/SlotIndexes.h" + textual header "/usr/include/llvm/CodeGen/StackMaps.h" + textual header "/usr/include/llvm/CodeGen/StackProtector.h" + textual header "/usr/include/llvm/CodeGen/SwiftErrorValueTracking.h" + textual header "/usr/include/llvm/CodeGen/SwitchLoweringUtils.h" + textual header "/usr/include/llvm/CodeGen/TailDuplicator.h" + textual header "/usr/include/llvm/CodeGen/TargetCallingConv.h" + textual header "/usr/include/llvm/CodeGen/TargetFrameLowering.h" + textual header "/usr/include/llvm/CodeGen/TargetInstrInfo.h" + textual header "/usr/include/llvm/CodeGen/TargetLowering.h" + textual header "/usr/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h" + textual header "/usr/include/llvm/CodeGen/TargetOpcodes.h" + textual header "/usr/include/llvm/CodeGen/TargetPassConfig.h" + textual header "/usr/include/llvm/CodeGen/TargetRegisterInfo.h" + textual header "/usr/include/llvm/CodeGen/TargetSchedule.h" + textual header "/usr/include/llvm/CodeGen/TargetSubtargetInfo.h" + textual header "/usr/include/llvm/CodeGen/UnreachableBlockElim.h" + textual header "/usr/include/llvm/CodeGen/ValueTypes.h" + textual header "/usr/include/llvm/CodeGen/ValueTypes.td" + textual header "/usr/include/llvm/CodeGen/VirtRegMap.h" + textual header "/usr/include/llvm/CodeGen/WasmEHFuncInfo.h" + textual header "/usr/include/llvm/CodeGen/WinEHFuncInfo.h" + textual header "/usr/include/llvm/Config/AsmParsers.def" + textual header "/usr/include/llvm/Config/AsmPrinters.def" + textual header "/usr/include/llvm/Config/Disassemblers.def" + textual header "/usr/include/llvm/Config/Targets.def" + textual header "/usr/include/llvm/Config/abi-breaking.h" + textual header "/usr/include/llvm/Config/llvm-config.h" + textual header "/usr/include/llvm/DWARFLinker/DWARFLinker.h" + textual header "/usr/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h" + textual header "/usr/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/CVRecord.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/CodeView.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/CodeViewError.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def" + textual header "/usr/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def" + textual header "/usr/include/llvm/DebugInfo/CodeView/CodeViewTypes.def" + textual header "/usr/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/EnumTables.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/Formatters.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/FunctionId.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/GUID.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/Line.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/RecordName.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/RecordSerialization.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolDumper.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolRecord.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolSerializer.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeCollection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeDeserializer.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeHashing.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeIndex.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeRecord.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeTableCollection.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h" + textual header "/usr/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h" + textual header "/usr/include/llvm/DebugInfo/DIContext.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFAttribute.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFContext.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFDie.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFExpression.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFFormValue.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFListTable.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFObject.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFSection.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFUnit.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h" + textual header "/usr/include/llvm/DebugInfo/DWARF/DWARFVerifier.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/FileEntry.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/FileWriter.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/FunctionInfo.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/GsymCreator.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/GsymReader.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/Header.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/InlineInfo.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/LineEntry.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/LineTable.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/LookupResult.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/Range.h" + textual header "/usr/include/llvm/DebugInfo/GSYM/StringTable.h" + textual header "/usr/include/llvm/DebugInfo/MSF/IMSFFile.h" + textual header "/usr/include/llvm/DebugInfo/MSF/MSFBuilder.h" + textual header "/usr/include/llvm/DebugInfo/MSF/MSFCommon.h" + textual header "/usr/include/llvm/DebugInfo/MSF/MSFError.h" + textual header "/usr/include/llvm/DebugInfo/MSF/MappedBlockStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAError.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIASession.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIASupport.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIATable.h" + textual header "/usr/include/llvm/DebugInfo/PDB/DIA/DIAUtils.h" + textual header "/usr/include/llvm/DebugInfo/PDB/GenericError.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBDataStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBFrameData.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBLineNumber.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBSession.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBSourceFile.h" + textual header "/usr/include/llvm/DebugInfo/PDB/IPDBTable.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/DbiStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/EnumTables.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/Formatters.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/Hash.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/HashTable.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/InfoStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeSession.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/PDBFile.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/PublicsStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/RawConstants.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/RawError.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/RawTypes.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/SymbolCache.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/SymbolStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/TpiHashing.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/TpiStream.h" + textual header "/usr/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDB.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBContext.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBExtras.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymDumper.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbol.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolData.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolExe.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h" + textual header "/usr/include/llvm/DebugInfo/PDB/PDBTypes.h" + textual header "/usr/include/llvm/DebugInfo/PDB/UDTLayout.h" + textual header "/usr/include/llvm/DebugInfo/Symbolize/DIPrinter.h" + textual header "/usr/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h" + textual header "/usr/include/llvm/DebugInfo/Symbolize/Symbolize.h" + textual header "/usr/include/llvm/Demangle/Demangle.h" + textual header "/usr/include/llvm/Demangle/DemangleConfig.h" + textual header "/usr/include/llvm/Demangle/ItaniumDemangle.h" + textual header "/usr/include/llvm/Demangle/MicrosoftDemangle.h" + textual header "/usr/include/llvm/Demangle/MicrosoftDemangleNodes.h" + textual header "/usr/include/llvm/Demangle/StringView.h" + textual header "/usr/include/llvm/Demangle/Utility.h" + textual header "/usr/include/llvm/ExecutionEngine/ExecutionEngine.h" + textual header "/usr/include/llvm/ExecutionEngine/GenericValue.h" + textual header "/usr/include/llvm/ExecutionEngine/Interpreter.h" + textual header "/usr/include/llvm/ExecutionEngine/JITEventListener.h" + textual header "/usr/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h" + textual header "/usr/include/llvm/ExecutionEngine/JITLink/JITLink.h" + textual header "/usr/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h" + textual header "/usr/include/llvm/ExecutionEngine/JITLink/MachO.h" + textual header "/usr/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h" + textual header "/usr/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h" + textual header "/usr/include/llvm/ExecutionEngine/JITSymbol.h" + textual header "/usr/include/llvm/ExecutionEngine/MCJIT.h" + textual header "/usr/include/llvm/ExecutionEngine/OProfileWrapper.h" + textual header "/usr/include/llvm/ExecutionEngine/ObjectCache.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/CompileUtils.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/Core.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/DebugUtils.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/LLJIT.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/LambdaResolver.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/Layer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/LazyReexports.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/Legacy.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/NullResolver.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/OrcABISupport.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/OrcError.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/RPC/RPCSerialization.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/RPC/RPCUtils.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/RPC/RawByteChannel.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/Speculation.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h" + textual header "/usr/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h" + textual header "/usr/include/llvm/ExecutionEngine/OrcMCJITReplacement.h" + textual header "/usr/include/llvm/ExecutionEngine/OrcV1Deprecation.h" + textual header "/usr/include/llvm/ExecutionEngine/RTDyldMemoryManager.h" + textual header "/usr/include/llvm/ExecutionEngine/RuntimeDyld.h" + textual header "/usr/include/llvm/ExecutionEngine/RuntimeDyldChecker.h" + textual header "/usr/include/llvm/ExecutionEngine/SectionMemoryManager.h" + textual header "/usr/include/llvm/Frontend/OpenMP/OMPConstants.h" + textual header "/usr/include/llvm/Frontend/OpenMP/OMPIRBuilder.h" + textual header "/usr/include/llvm/Frontend/OpenMP/OMPKinds.def" + textual header "/usr/include/llvm/FuzzMutate/FuzzerCLI.h" + textual header "/usr/include/llvm/FuzzMutate/IRMutator.h" + textual header "/usr/include/llvm/FuzzMutate/OpDescriptor.h" + textual header "/usr/include/llvm/FuzzMutate/Operations.h" + textual header "/usr/include/llvm/FuzzMutate/Random.h" + textual header "/usr/include/llvm/FuzzMutate/RandomIRBuilder.h" + textual header "/usr/include/llvm/IR/Argument.h" + textual header "/usr/include/llvm/IR/AssemblyAnnotationWriter.h" + textual header "/usr/include/llvm/IR/Attributes.h" + textual header "/usr/include/llvm/IR/Attributes.inc" + textual header "/usr/include/llvm/IR/Attributes.td" + textual header "/usr/include/llvm/IR/AutoUpgrade.h" + textual header "/usr/include/llvm/IR/BasicBlock.h" + textual header "/usr/include/llvm/IR/CFG.h" + textual header "/usr/include/llvm/IR/CFGDiff.h" + textual header "/usr/include/llvm/IR/CallSite.h" + textual header "/usr/include/llvm/IR/CallingConv.h" + textual header "/usr/include/llvm/IR/Comdat.h" + textual header "/usr/include/llvm/IR/Constant.h" + textual header "/usr/include/llvm/IR/ConstantFolder.h" + textual header "/usr/include/llvm/IR/ConstantRange.h" + textual header "/usr/include/llvm/IR/Constants.h" + textual header "/usr/include/llvm/IR/ConstrainedOps.def" + textual header "/usr/include/llvm/IR/DIBuilder.h" + textual header "/usr/include/llvm/IR/DataLayout.h" + textual header "/usr/include/llvm/IR/DebugInfo.h" + textual header "/usr/include/llvm/IR/DebugInfoFlags.def" + textual header "/usr/include/llvm/IR/DebugInfoMetadata.h" + textual header "/usr/include/llvm/IR/DebugLoc.h" + textual header "/usr/include/llvm/IR/DerivedTypes.h" + textual header "/usr/include/llvm/IR/DerivedUser.h" + textual header "/usr/include/llvm/IR/DiagnosticHandler.h" + textual header "/usr/include/llvm/IR/DiagnosticInfo.h" + textual header "/usr/include/llvm/IR/DiagnosticPrinter.h" + textual header "/usr/include/llvm/IR/Dominators.h" + textual header "/usr/include/llvm/IR/FPEnv.h" + textual header "/usr/include/llvm/IR/FixedMetadataKinds.def" + textual header "/usr/include/llvm/IR/Function.h" + textual header "/usr/include/llvm/IR/GVMaterializer.h" + textual header "/usr/include/llvm/IR/GetElementPtrTypeIterator.h" + textual header "/usr/include/llvm/IR/GlobalAlias.h" + textual header "/usr/include/llvm/IR/GlobalIFunc.h" + textual header "/usr/include/llvm/IR/GlobalIndirectSymbol.h" + textual header "/usr/include/llvm/IR/GlobalObject.h" + textual header "/usr/include/llvm/IR/GlobalValue.h" + textual header "/usr/include/llvm/IR/GlobalVariable.h" + textual header "/usr/include/llvm/IR/IRBuilder.h" + textual header "/usr/include/llvm/IR/IRPrintingPasses.h" + textual header "/usr/include/llvm/IR/InlineAsm.h" + textual header "/usr/include/llvm/IR/InstIterator.h" + textual header "/usr/include/llvm/IR/InstVisitor.h" + textual header "/usr/include/llvm/IR/InstrTypes.h" + textual header "/usr/include/llvm/IR/Instruction.def" + textual header "/usr/include/llvm/IR/Instruction.h" + textual header "/usr/include/llvm/IR/Instructions.h" + textual header "/usr/include/llvm/IR/IntrinsicEnums.inc" + textual header "/usr/include/llvm/IR/IntrinsicImpl.inc" + textual header "/usr/include/llvm/IR/IntrinsicInst.h" + textual header "/usr/include/llvm/IR/Intrinsics.h" + textual header "/usr/include/llvm/IR/Intrinsics.td" + textual header "/usr/include/llvm/IR/IntrinsicsAArch64.h" + textual header "/usr/include/llvm/IR/IntrinsicsAArch64.td" + textual header "/usr/include/llvm/IR/IntrinsicsAMDGPU.h" + textual header "/usr/include/llvm/IR/IntrinsicsAMDGPU.td" + textual header "/usr/include/llvm/IR/IntrinsicsARM.h" + textual header "/usr/include/llvm/IR/IntrinsicsARM.td" + textual header "/usr/include/llvm/IR/IntrinsicsBPF.h" + textual header "/usr/include/llvm/IR/IntrinsicsBPF.td" + textual header "/usr/include/llvm/IR/IntrinsicsHexagon.h" + textual header "/usr/include/llvm/IR/IntrinsicsHexagon.td" + textual header "/usr/include/llvm/IR/IntrinsicsMips.h" + textual header "/usr/include/llvm/IR/IntrinsicsMips.td" + textual header "/usr/include/llvm/IR/IntrinsicsNVPTX.h" + textual header "/usr/include/llvm/IR/IntrinsicsNVVM.td" + textual header "/usr/include/llvm/IR/IntrinsicsPowerPC.h" + textual header "/usr/include/llvm/IR/IntrinsicsPowerPC.td" + textual header "/usr/include/llvm/IR/IntrinsicsR600.h" + textual header "/usr/include/llvm/IR/IntrinsicsRISCV.h" + textual header "/usr/include/llvm/IR/IntrinsicsRISCV.td" + textual header "/usr/include/llvm/IR/IntrinsicsS390.h" + textual header "/usr/include/llvm/IR/IntrinsicsSystemZ.td" + textual header "/usr/include/llvm/IR/IntrinsicsWebAssembly.h" + textual header "/usr/include/llvm/IR/IntrinsicsWebAssembly.td" + textual header "/usr/include/llvm/IR/IntrinsicsX86.h" + textual header "/usr/include/llvm/IR/IntrinsicsX86.td" + textual header "/usr/include/llvm/IR/IntrinsicsXCore.h" + textual header "/usr/include/llvm/IR/IntrinsicsXCore.td" + textual header "/usr/include/llvm/IR/LLVMContext.h" + textual header "/usr/include/llvm/IR/LegacyPassManager.h" + textual header "/usr/include/llvm/IR/LegacyPassManagers.h" + textual header "/usr/include/llvm/IR/LegacyPassNameParser.h" + textual header "/usr/include/llvm/IR/MDBuilder.h" + textual header "/usr/include/llvm/IR/Mangler.h" + textual header "/usr/include/llvm/IR/Metadata.def" + textual header "/usr/include/llvm/IR/Metadata.h" + textual header "/usr/include/llvm/IR/Module.h" + textual header "/usr/include/llvm/IR/ModuleSlotTracker.h" + textual header "/usr/include/llvm/IR/ModuleSummaryIndex.h" + textual header "/usr/include/llvm/IR/ModuleSummaryIndexYAML.h" + textual header "/usr/include/llvm/IR/NoFolder.h" + textual header "/usr/include/llvm/IR/OperandTraits.h" + textual header "/usr/include/llvm/IR/Operator.h" + textual header "/usr/include/llvm/IR/OptBisect.h" + textual header "/usr/include/llvm/IR/PassInstrumentation.h" + textual header "/usr/include/llvm/IR/PassManager.h" + textual header "/usr/include/llvm/IR/PassManagerInternal.h" + textual header "/usr/include/llvm/IR/PassTimingInfo.h" + textual header "/usr/include/llvm/IR/PatternMatch.h" + textual header "/usr/include/llvm/IR/PredIteratorCache.h" + textual header "/usr/include/llvm/IR/ProfileSummary.h" + textual header "/usr/include/llvm/IR/RemarkStreamer.h" + textual header "/usr/include/llvm/IR/RuntimeLibcalls.def" + textual header "/usr/include/llvm/IR/SafepointIRVerifier.h" + textual header "/usr/include/llvm/IR/Statepoint.h" + textual header "/usr/include/llvm/IR/SymbolTableListTraits.h" + textual header "/usr/include/llvm/IR/TrackingMDRef.h" + textual header "/usr/include/llvm/IR/Type.h" + textual header "/usr/include/llvm/IR/TypeFinder.h" + textual header "/usr/include/llvm/IR/Use.h" + textual header "/usr/include/llvm/IR/UseListOrder.h" + textual header "/usr/include/llvm/IR/User.h" + textual header "/usr/include/llvm/IR/Value.def" + textual header "/usr/include/llvm/IR/Value.h" + textual header "/usr/include/llvm/IR/ValueHandle.h" + textual header "/usr/include/llvm/IR/ValueMap.h" + textual header "/usr/include/llvm/IR/ValueSymbolTable.h" + textual header "/usr/include/llvm/IR/Verifier.h" + textual header "/usr/include/llvm/IRReader/IRReader.h" + textual header "/usr/include/llvm/InitializePasses.h" + textual header "/usr/include/llvm/LTO/Caching.h" + textual header "/usr/include/llvm/LTO/Config.h" + textual header "/usr/include/llvm/LTO/LTO.h" + textual header "/usr/include/llvm/LTO/LTOBackend.h" + textual header "/usr/include/llvm/LTO/SummaryBasedOptimizations.h" + textual header "/usr/include/llvm/LTO/legacy/LTOCodeGenerator.h" + textual header "/usr/include/llvm/LTO/legacy/LTOModule.h" + textual header "/usr/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h" + textual header "/usr/include/llvm/LTO/legacy/UpdateCompilerUsed.h" + textual header "/usr/include/llvm/LineEditor/LineEditor.h" + textual header "/usr/include/llvm/LinkAllIR.h" + textual header "/usr/include/llvm/LinkAllPasses.h" + textual header "/usr/include/llvm/Linker/IRMover.h" + textual header "/usr/include/llvm/Linker/Linker.h" + textual header "/usr/include/llvm/MC/ConstantPools.h" + textual header "/usr/include/llvm/MC/LaneBitmask.h" + textual header "/usr/include/llvm/MC/MCAsmBackend.h" + textual header "/usr/include/llvm/MC/MCAsmInfo.h" + textual header "/usr/include/llvm/MC/MCAsmInfoCOFF.h" + textual header "/usr/include/llvm/MC/MCAsmInfoDarwin.h" + textual header "/usr/include/llvm/MC/MCAsmInfoELF.h" + textual header "/usr/include/llvm/MC/MCAsmInfoWasm.h" + textual header "/usr/include/llvm/MC/MCAsmInfoXCOFF.h" + textual header "/usr/include/llvm/MC/MCAsmLayout.h" + textual header "/usr/include/llvm/MC/MCAsmMacro.h" + textual header "/usr/include/llvm/MC/MCAssembler.h" + textual header "/usr/include/llvm/MC/MCCodeEmitter.h" + textual header "/usr/include/llvm/MC/MCCodeView.h" + textual header "/usr/include/llvm/MC/MCContext.h" + textual header "/usr/include/llvm/MC/MCDirectives.h" + textual header "/usr/include/llvm/MC/MCDisassembler/MCDisassembler.h" + textual header "/usr/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h" + textual header "/usr/include/llvm/MC/MCDisassembler/MCRelocationInfo.h" + textual header "/usr/include/llvm/MC/MCDisassembler/MCSymbolizer.h" + textual header "/usr/include/llvm/MC/MCDwarf.h" + textual header "/usr/include/llvm/MC/MCELFObjectWriter.h" + textual header "/usr/include/llvm/MC/MCELFStreamer.h" + textual header "/usr/include/llvm/MC/MCExpr.h" + textual header "/usr/include/llvm/MC/MCFixedLenDisassembler.h" + textual header "/usr/include/llvm/MC/MCFixup.h" + textual header "/usr/include/llvm/MC/MCFixupKindInfo.h" + textual header "/usr/include/llvm/MC/MCFragment.h" + textual header "/usr/include/llvm/MC/MCInst.h" + textual header "/usr/include/llvm/MC/MCInstBuilder.h" + textual header "/usr/include/llvm/MC/MCInstPrinter.h" + textual header "/usr/include/llvm/MC/MCInstrAnalysis.h" + textual header "/usr/include/llvm/MC/MCInstrDesc.h" + textual header "/usr/include/llvm/MC/MCInstrInfo.h" + textual header "/usr/include/llvm/MC/MCInstrItineraries.h" + textual header "/usr/include/llvm/MC/MCLabel.h" + textual header "/usr/include/llvm/MC/MCLinkerOptimizationHint.h" + textual header "/usr/include/llvm/MC/MCMachObjectWriter.h" + textual header "/usr/include/llvm/MC/MCObjectFileInfo.h" + textual header "/usr/include/llvm/MC/MCObjectStreamer.h" + textual header "/usr/include/llvm/MC/MCObjectWriter.h" + textual header "/usr/include/llvm/MC/MCParser/AsmCond.h" + textual header "/usr/include/llvm/MC/MCParser/AsmLexer.h" + textual header "/usr/include/llvm/MC/MCParser/MCAsmLexer.h" + textual header "/usr/include/llvm/MC/MCParser/MCAsmParser.h" + textual header "/usr/include/llvm/MC/MCParser/MCAsmParserExtension.h" + textual header "/usr/include/llvm/MC/MCParser/MCAsmParserUtils.h" + textual header "/usr/include/llvm/MC/MCParser/MCParsedAsmOperand.h" + textual header "/usr/include/llvm/MC/MCParser/MCTargetAsmParser.h" + textual header "/usr/include/llvm/MC/MCRegister.h" + textual header "/usr/include/llvm/MC/MCRegisterInfo.h" + textual header "/usr/include/llvm/MC/MCSchedule.h" + textual header "/usr/include/llvm/MC/MCSection.h" + textual header "/usr/include/llvm/MC/MCSectionCOFF.h" + textual header "/usr/include/llvm/MC/MCSectionELF.h" + textual header "/usr/include/llvm/MC/MCSectionMachO.h" + textual header "/usr/include/llvm/MC/MCSectionWasm.h" + textual header "/usr/include/llvm/MC/MCSectionXCOFF.h" + textual header "/usr/include/llvm/MC/MCStreamer.h" + textual header "/usr/include/llvm/MC/MCSubtargetInfo.h" + textual header "/usr/include/llvm/MC/MCSymbol.h" + textual header "/usr/include/llvm/MC/MCSymbolCOFF.h" + textual header "/usr/include/llvm/MC/MCSymbolELF.h" + textual header "/usr/include/llvm/MC/MCSymbolMachO.h" + textual header "/usr/include/llvm/MC/MCSymbolWasm.h" + textual header "/usr/include/llvm/MC/MCSymbolXCOFF.h" + textual header "/usr/include/llvm/MC/MCTargetOptions.h" + textual header "/usr/include/llvm/MC/MCTargetOptionsCommandFlags.inc" + textual header "/usr/include/llvm/MC/MCValue.h" + textual header "/usr/include/llvm/MC/MCWasmObjectWriter.h" + textual header "/usr/include/llvm/MC/MCWasmStreamer.h" + textual header "/usr/include/llvm/MC/MCWin64EH.h" + textual header "/usr/include/llvm/MC/MCWinCOFFObjectWriter.h" + textual header "/usr/include/llvm/MC/MCWinCOFFStreamer.h" + textual header "/usr/include/llvm/MC/MCWinEH.h" + textual header "/usr/include/llvm/MC/MCXCOFFObjectWriter.h" + textual header "/usr/include/llvm/MC/MCXCOFFStreamer.h" + textual header "/usr/include/llvm/MC/MachineLocation.h" + textual header "/usr/include/llvm/MC/SectionKind.h" + textual header "/usr/include/llvm/MC/StringTableBuilder.h" + textual header "/usr/include/llvm/MC/SubtargetFeature.h" + textual header "/usr/include/llvm/MCA/CodeEmitter.h" + textual header "/usr/include/llvm/MCA/Context.h" + textual header "/usr/include/llvm/MCA/HWEventListener.h" + textual header "/usr/include/llvm/MCA/HardwareUnits/HardwareUnit.h" + textual header "/usr/include/llvm/MCA/HardwareUnits/LSUnit.h" + textual header "/usr/include/llvm/MCA/HardwareUnits/RegisterFile.h" + textual header "/usr/include/llvm/MCA/HardwareUnits/ResourceManager.h" + textual header "/usr/include/llvm/MCA/HardwareUnits/RetireControlUnit.h" + textual header "/usr/include/llvm/MCA/HardwareUnits/Scheduler.h" + textual header "/usr/include/llvm/MCA/InstrBuilder.h" + textual header "/usr/include/llvm/MCA/Instruction.h" + textual header "/usr/include/llvm/MCA/Pipeline.h" + textual header "/usr/include/llvm/MCA/SourceMgr.h" + textual header "/usr/include/llvm/MCA/Stages/DispatchStage.h" + textual header "/usr/include/llvm/MCA/Stages/EntryStage.h" + textual header "/usr/include/llvm/MCA/Stages/ExecuteStage.h" + textual header "/usr/include/llvm/MCA/Stages/InstructionTables.h" + textual header "/usr/include/llvm/MCA/Stages/MicroOpQueueStage.h" + textual header "/usr/include/llvm/MCA/Stages/RetireStage.h" + textual header "/usr/include/llvm/MCA/Stages/Stage.h" + textual header "/usr/include/llvm/MCA/Support.h" + textual header "/usr/include/llvm/Object/Archive.h" + textual header "/usr/include/llvm/Object/ArchiveWriter.h" + textual header "/usr/include/llvm/Object/Binary.h" + textual header "/usr/include/llvm/Object/COFF.h" + textual header "/usr/include/llvm/Object/COFFImportFile.h" + textual header "/usr/include/llvm/Object/COFFModuleDefinition.h" + textual header "/usr/include/llvm/Object/CVDebugRecord.h" + textual header "/usr/include/llvm/Object/Decompressor.h" + textual header "/usr/include/llvm/Object/ELF.h" + textual header "/usr/include/llvm/Object/ELFObjectFile.h" + textual header "/usr/include/llvm/Object/ELFTypes.h" + textual header "/usr/include/llvm/Object/Error.h" + textual header "/usr/include/llvm/Object/IRObjectFile.h" + textual header "/usr/include/llvm/Object/IRSymtab.h" + textual header "/usr/include/llvm/Object/MachO.h" + textual header "/usr/include/llvm/Object/MachOUniversal.h" + textual header "/usr/include/llvm/Object/Minidump.h" + textual header "/usr/include/llvm/Object/ModuleSymbolTable.h" + textual header "/usr/include/llvm/Object/ObjectFile.h" + textual header "/usr/include/llvm/Object/RelocationResolver.h" + textual header "/usr/include/llvm/Object/StackMapParser.h" + textual header "/usr/include/llvm/Object/SymbolSize.h" + textual header "/usr/include/llvm/Object/SymbolicFile.h" + textual header "/usr/include/llvm/Object/TapiFile.h" + textual header "/usr/include/llvm/Object/TapiUniversal.h" + textual header "/usr/include/llvm/Object/Wasm.h" + textual header "/usr/include/llvm/Object/WasmTraits.h" + textual header "/usr/include/llvm/Object/WindowsMachineFlag.h" + textual header "/usr/include/llvm/Object/WindowsResource.h" + textual header "/usr/include/llvm/Object/XCOFFObjectFile.h" + textual header "/usr/include/llvm/ObjectYAML/COFFYAML.h" + textual header "/usr/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h" + textual header "/usr/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h" + textual header "/usr/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h" + textual header "/usr/include/llvm/ObjectYAML/CodeViewYAMLTypes.h" + textual header "/usr/include/llvm/ObjectYAML/DWARFEmitter.h" + textual header "/usr/include/llvm/ObjectYAML/DWARFYAML.h" + textual header "/usr/include/llvm/ObjectYAML/ELFYAML.h" + textual header "/usr/include/llvm/ObjectYAML/MachOYAML.h" + textual header "/usr/include/llvm/ObjectYAML/MinidumpYAML.h" + textual header "/usr/include/llvm/ObjectYAML/ObjectYAML.h" + textual header "/usr/include/llvm/ObjectYAML/WasmYAML.h" + textual header "/usr/include/llvm/ObjectYAML/XCOFFYAML.h" + textual header "/usr/include/llvm/ObjectYAML/YAML.h" + textual header "/usr/include/llvm/ObjectYAML/yaml2obj.h" + textual header "/usr/include/llvm/Option/Arg.h" + textual header "/usr/include/llvm/Option/ArgList.h" + textual header "/usr/include/llvm/Option/OptParser.td" + textual header "/usr/include/llvm/Option/OptSpecifier.h" + textual header "/usr/include/llvm/Option/OptTable.h" + textual header "/usr/include/llvm/Option/Option.h" + textual header "/usr/include/llvm/Pass.h" + textual header "/usr/include/llvm/PassAnalysisSupport.h" + textual header "/usr/include/llvm/PassInfo.h" + textual header "/usr/include/llvm/PassRegistry.h" + textual header "/usr/include/llvm/PassSupport.h" + textual header "/usr/include/llvm/Passes/PassBuilder.h" + textual header "/usr/include/llvm/Passes/PassPlugin.h" + textual header "/usr/include/llvm/Passes/StandardInstrumentations.h" + textual header "/usr/include/llvm/ProfileData/Coverage/CoverageMapping.h" + textual header "/usr/include/llvm/ProfileData/Coverage/CoverageMappingReader.h" + textual header "/usr/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h" + textual header "/usr/include/llvm/ProfileData/GCOV.h" + textual header "/usr/include/llvm/ProfileData/InstrProf.h" + textual header "/usr/include/llvm/ProfileData/InstrProfData.inc" + textual header "/usr/include/llvm/ProfileData/InstrProfReader.h" + textual header "/usr/include/llvm/ProfileData/InstrProfWriter.h" + textual header "/usr/include/llvm/ProfileData/ProfileCommon.h" + textual header "/usr/include/llvm/ProfileData/SampleProf.h" + textual header "/usr/include/llvm/ProfileData/SampleProfReader.h" + textual header "/usr/include/llvm/ProfileData/SampleProfWriter.h" + textual header "/usr/include/llvm/Remarks/BitstreamRemarkContainer.h" + textual header "/usr/include/llvm/Remarks/BitstreamRemarkParser.h" + textual header "/usr/include/llvm/Remarks/BitstreamRemarkSerializer.h" + textual header "/usr/include/llvm/Remarks/Remark.h" + textual header "/usr/include/llvm/Remarks/RemarkFormat.h" + textual header "/usr/include/llvm/Remarks/RemarkLinker.h" + textual header "/usr/include/llvm/Remarks/RemarkParser.h" + textual header "/usr/include/llvm/Remarks/RemarkSerializer.h" + textual header "/usr/include/llvm/Remarks/RemarkStringTable.h" + textual header "/usr/include/llvm/Remarks/YAMLRemarkSerializer.h" + textual header "/usr/include/llvm/Support/AArch64TargetParser.def" + textual header "/usr/include/llvm/Support/AArch64TargetParser.h" + textual header "/usr/include/llvm/Support/AMDGPUMetadata.h" + textual header "/usr/include/llvm/Support/AMDHSAKernelDescriptor.h" + textual header "/usr/include/llvm/Support/ARMAttributeParser.h" + textual header "/usr/include/llvm/Support/ARMBuildAttributes.h" + textual header "/usr/include/llvm/Support/ARMEHABI.h" + textual header "/usr/include/llvm/Support/ARMTargetParser.def" + textual header "/usr/include/llvm/Support/ARMTargetParser.h" + textual header "/usr/include/llvm/Support/ARMWinEH.h" + textual header "/usr/include/llvm/Support/AlignOf.h" + textual header "/usr/include/llvm/Support/Alignment.h" + textual header "/usr/include/llvm/Support/Allocator.h" + textual header "/usr/include/llvm/Support/ArrayRecycler.h" + textual header "/usr/include/llvm/Support/Atomic.h" + textual header "/usr/include/llvm/Support/AtomicOrdering.h" + textual header "/usr/include/llvm/Support/Automaton.h" + textual header "/usr/include/llvm/Support/BinaryByteStream.h" + textual header "/usr/include/llvm/Support/BinaryItemStream.h" + textual header "/usr/include/llvm/Support/BinaryStream.h" + textual header "/usr/include/llvm/Support/BinaryStreamArray.h" + textual header "/usr/include/llvm/Support/BinaryStreamError.h" + textual header "/usr/include/llvm/Support/BinaryStreamReader.h" + textual header "/usr/include/llvm/Support/BinaryStreamRef.h" + textual header "/usr/include/llvm/Support/BinaryStreamWriter.h" + textual header "/usr/include/llvm/Support/BlockFrequency.h" + textual header "/usr/include/llvm/Support/BranchProbability.h" + textual header "/usr/include/llvm/Support/BuryPointer.h" + textual header "/usr/include/llvm/Support/CBindingWrapping.h" + textual header "/usr/include/llvm/Support/CFGUpdate.h" + textual header "/usr/include/llvm/Support/COM.h" + textual header "/usr/include/llvm/Support/CRC.h" + textual header "/usr/include/llvm/Support/CachePruning.h" + textual header "/usr/include/llvm/Support/Capacity.h" + textual header "/usr/include/llvm/Support/Casting.h" + textual header "/usr/include/llvm/Support/CheckedArithmetic.h" + textual header "/usr/include/llvm/Support/Chrono.h" + textual header "/usr/include/llvm/Support/CodeGen.h" + textual header "/usr/include/llvm/Support/CodeGenCoverage.h" + textual header "/usr/include/llvm/Support/CommandLine.h" + textual header "/usr/include/llvm/Support/Compiler.h" + textual header "/usr/include/llvm/Support/Compression.h" + textual header "/usr/include/llvm/Support/ConvertUTF.h" + textual header "/usr/include/llvm/Support/CrashRecoveryContext.h" + textual header "/usr/include/llvm/Support/DJB.h" + textual header "/usr/include/llvm/Support/DOTGraphTraits.h" + textual header "/usr/include/llvm/Support/DataExtractor.h" + textual header "/usr/include/llvm/Support/DataTypes.h" + textual header "/usr/include/llvm/Support/Debug.h" + textual header "/usr/include/llvm/Support/DebugCounter.h" + textual header "/usr/include/llvm/Support/DynamicLibrary.h" + textual header "/usr/include/llvm/Support/Endian.h" + textual header "/usr/include/llvm/Support/EndianStream.h" + textual header "/usr/include/llvm/Support/Errc.h" + textual header "/usr/include/llvm/Support/Errno.h" + textual header "/usr/include/llvm/Support/Error.h" + textual header "/usr/include/llvm/Support/ErrorHandling.h" + textual header "/usr/include/llvm/Support/ErrorOr.h" + textual header "/usr/include/llvm/Support/Extension.def" + textual header "/usr/include/llvm/Support/FileCheck.h" + textual header "/usr/include/llvm/Support/FileCollector.h" + textual header "/usr/include/llvm/Support/FileOutputBuffer.h" + textual header "/usr/include/llvm/Support/FileSystem.h" + textual header "/usr/include/llvm/Support/FileUtilities.h" + textual header "/usr/include/llvm/Support/Format.h" + textual header "/usr/include/llvm/Support/FormatAdapters.h" + textual header "/usr/include/llvm/Support/FormatCommon.h" + textual header "/usr/include/llvm/Support/FormatProviders.h" + textual header "/usr/include/llvm/Support/FormatVariadic.h" + textual header "/usr/include/llvm/Support/FormatVariadicDetails.h" + textual header "/usr/include/llvm/Support/FormattedStream.h" + textual header "/usr/include/llvm/Support/GenericDomTree.h" + textual header "/usr/include/llvm/Support/GenericDomTreeConstruction.h" + textual header "/usr/include/llvm/Support/GenericIteratedDominanceFrontier.h" + textual header "/usr/include/llvm/Support/GlobPattern.h" + textual header "/usr/include/llvm/Support/GraphWriter.h" + textual header "/usr/include/llvm/Support/Host.h" + textual header "/usr/include/llvm/Support/InitLLVM.h" + textual header "/usr/include/llvm/Support/ItaniumManglingCanonicalizer.h" + textual header "/usr/include/llvm/Support/JSON.h" + textual header "/usr/include/llvm/Support/KnownBits.h" + textual header "/usr/include/llvm/Support/LEB128.h" + textual header "/usr/include/llvm/Support/LineIterator.h" + textual header "/usr/include/llvm/Support/Locale.h" + textual header "/usr/include/llvm/Support/LockFileManager.h" + textual header "/usr/include/llvm/Support/LowLevelTypeImpl.h" + textual header "/usr/include/llvm/Support/MD5.h" + textual header "/usr/include/llvm/Support/MSVCErrorWorkarounds.h" + textual header "/usr/include/llvm/Support/MachineValueType.h" + textual header "/usr/include/llvm/Support/ManagedStatic.h" + textual header "/usr/include/llvm/Support/MathExtras.h" + textual header "/usr/include/llvm/Support/MemAlloc.h" + textual header "/usr/include/llvm/Support/Memory.h" + textual header "/usr/include/llvm/Support/MemoryBuffer.h" + textual header "/usr/include/llvm/Support/MipsABIFlags.h" + textual header "/usr/include/llvm/Support/Mutex.h" + textual header "/usr/include/llvm/Support/NativeFormatting.h" + textual header "/usr/include/llvm/Support/OnDiskHashTable.h" + textual header "/usr/include/llvm/Support/Parallel.h" + textual header "/usr/include/llvm/Support/Path.h" + textual header "/usr/include/llvm/Support/PluginLoader.h" + textual header "/usr/include/llvm/Support/PointerLikeTypeTraits.h" + textual header "/usr/include/llvm/Support/PrettyStackTrace.h" + textual header "/usr/include/llvm/Support/Printable.h" + textual header "/usr/include/llvm/Support/Process.h" + textual header "/usr/include/llvm/Support/Program.h" + textual header "/usr/include/llvm/Support/RWMutex.h" + textual header "/usr/include/llvm/Support/RandomNumberGenerator.h" + textual header "/usr/include/llvm/Support/Recycler.h" + textual header "/usr/include/llvm/Support/RecyclingAllocator.h" + textual header "/usr/include/llvm/Support/Regex.h" + textual header "/usr/include/llvm/Support/Registry.h" + textual header "/usr/include/llvm/Support/ReverseIteration.h" + textual header "/usr/include/llvm/Support/SHA1.h" + textual header "/usr/include/llvm/Support/SMLoc.h" + textual header "/usr/include/llvm/Support/SMTAPI.h" + textual header "/usr/include/llvm/Support/SaveAndRestore.h" + textual header "/usr/include/llvm/Support/ScaledNumber.h" + textual header "/usr/include/llvm/Support/ScopedPrinter.h" + textual header "/usr/include/llvm/Support/Signals.h" + textual header "/usr/include/llvm/Support/Signposts.h" + textual header "/usr/include/llvm/Support/SmallVectorMemoryBuffer.h" + textual header "/usr/include/llvm/Support/Solaris/sys/regset.h" + textual header "/usr/include/llvm/Support/SourceMgr.h" + textual header "/usr/include/llvm/Support/SpecialCaseList.h" + textual header "/usr/include/llvm/Support/StringPool.h" + textual header "/usr/include/llvm/Support/StringSaver.h" + textual header "/usr/include/llvm/Support/SwapByteOrder.h" + textual header "/usr/include/llvm/Support/SymbolRemappingReader.h" + textual header "/usr/include/llvm/Support/SystemUtils.h" + textual header "/usr/include/llvm/Support/TarWriter.h" + textual header "/usr/include/llvm/Support/TargetOpcodes.def" + textual header "/usr/include/llvm/Support/TargetParser.h" + textual header "/usr/include/llvm/Support/TargetRegistry.h" + textual header "/usr/include/llvm/Support/TargetSelect.h" + textual header "/usr/include/llvm/Support/TaskQueue.h" + textual header "/usr/include/llvm/Support/ThreadLocal.h" + textual header "/usr/include/llvm/Support/ThreadPool.h" + textual header "/usr/include/llvm/Support/Threading.h" + textual header "/usr/include/llvm/Support/TimeProfiler.h" + textual header "/usr/include/llvm/Support/Timer.h" + textual header "/usr/include/llvm/Support/ToolOutputFile.h" + textual header "/usr/include/llvm/Support/TrailingObjects.h" + textual header "/usr/include/llvm/Support/TrigramIndex.h" + textual header "/usr/include/llvm/Support/TypeName.h" + textual header "/usr/include/llvm/Support/TypeSize.h" + textual header "/usr/include/llvm/Support/Unicode.h" + textual header "/usr/include/llvm/Support/UnicodeCharRanges.h" + textual header "/usr/include/llvm/Support/VCSRevision.h" + textual header "/usr/include/llvm/Support/Valgrind.h" + textual header "/usr/include/llvm/Support/VersionTuple.h" + textual header "/usr/include/llvm/Support/VirtualFileSystem.h" + textual header "/usr/include/llvm/Support/Watchdog.h" + textual header "/usr/include/llvm/Support/Win64EH.h" + textual header "/usr/include/llvm/Support/Windows/WindowsSupport.h" + textual header "/usr/include/llvm/Support/WindowsError.h" + textual header "/usr/include/llvm/Support/WithColor.h" + textual header "/usr/include/llvm/Support/X86DisassemblerDecoderCommon.h" + textual header "/usr/include/llvm/Support/X86TargetParser.def" + textual header "/usr/include/llvm/Support/YAMLParser.h" + textual header "/usr/include/llvm/Support/YAMLTraits.h" + textual header "/usr/include/llvm/Support/circular_raw_ostream.h" + textual header "/usr/include/llvm/Support/raw_os_ostream.h" + textual header "/usr/include/llvm/Support/raw_ostream.h" + textual header "/usr/include/llvm/Support/raw_sha1_ostream.h" + textual header "/usr/include/llvm/Support/thread.h" + textual header "/usr/include/llvm/Support/type_traits.h" + textual header "/usr/include/llvm/Support/xxhash.h" + textual header "/usr/include/llvm/TableGen/Automaton.td" + textual header "/usr/include/llvm/TableGen/Error.h" + textual header "/usr/include/llvm/TableGen/Main.h" + textual header "/usr/include/llvm/TableGen/Record.h" + textual header "/usr/include/llvm/TableGen/SearchableTable.td" + textual header "/usr/include/llvm/TableGen/SetTheory.h" + textual header "/usr/include/llvm/TableGen/StringMatcher.h" + textual header "/usr/include/llvm/TableGen/StringToOffsetTable.h" + textual header "/usr/include/llvm/TableGen/TableGenBackend.h" + textual header "/usr/include/llvm/Target/CodeGenCWrappers.h" + textual header "/usr/include/llvm/Target/GenericOpcodes.td" + textual header "/usr/include/llvm/Target/GlobalISel/Combine.td" + textual header "/usr/include/llvm/Target/GlobalISel/RegisterBank.td" + textual header "/usr/include/llvm/Target/GlobalISel/SelectionDAGCompat.td" + textual header "/usr/include/llvm/Target/GlobalISel/Target.td" + textual header "/usr/include/llvm/Target/Target.td" + textual header "/usr/include/llvm/Target/TargetCallingConv.td" + textual header "/usr/include/llvm/Target/TargetInstrPredicate.td" + textual header "/usr/include/llvm/Target/TargetIntrinsicInfo.h" + textual header "/usr/include/llvm/Target/TargetItinerary.td" + textual header "/usr/include/llvm/Target/TargetLoweringObjectFile.h" + textual header "/usr/include/llvm/Target/TargetMachine.h" + textual header "/usr/include/llvm/Target/TargetOptions.h" + textual header "/usr/include/llvm/Target/TargetPfmCounters.td" + textual header "/usr/include/llvm/Target/TargetSchedule.td" + textual header "/usr/include/llvm/Target/TargetSelectionDAG.td" + textual header "/usr/include/llvm/Testing/Support/Annotations.h" + textual header "/usr/include/llvm/Testing/Support/Error.h" + textual header "/usr/include/llvm/Testing/Support/SupportHelpers.h" + textual header "/usr/include/llvm/TextAPI/ELF/ELFStub.h" + textual header "/usr/include/llvm/TextAPI/ELF/TBEHandler.h" + textual header "/usr/include/llvm/TextAPI/MachO/Architecture.def" + textual header "/usr/include/llvm/TextAPI/MachO/Architecture.h" + textual header "/usr/include/llvm/TextAPI/MachO/ArchitectureSet.h" + textual header "/usr/include/llvm/TextAPI/MachO/InterfaceFile.h" + textual header "/usr/include/llvm/TextAPI/MachO/PackedVersion.h" + textual header "/usr/include/llvm/TextAPI/MachO/Platform.h" + textual header "/usr/include/llvm/TextAPI/MachO/Symbol.h" + textual header "/usr/include/llvm/TextAPI/MachO/Target.h" + textual header "/usr/include/llvm/TextAPI/MachO/TextAPIReader.h" + textual header "/usr/include/llvm/TextAPI/MachO/TextAPIWriter.h" + textual header "/usr/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h" + textual header "/usr/include/llvm/ToolDrivers/llvm-lib/LibDriver.h" + textual header "/usr/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h" + textual header "/usr/include/llvm/Transforms/CFGuard.h" + textual header "/usr/include/llvm/Transforms/Coroutines.h" + textual header "/usr/include/llvm/Transforms/IPO.h" + textual header "/usr/include/llvm/Transforms/IPO/AlwaysInliner.h" + textual header "/usr/include/llvm/Transforms/IPO/ArgumentPromotion.h" + textual header "/usr/include/llvm/Transforms/IPO/Attributor.h" + textual header "/usr/include/llvm/Transforms/IPO/CalledValuePropagation.h" + textual header "/usr/include/llvm/Transforms/IPO/ConstantMerge.h" + textual header "/usr/include/llvm/Transforms/IPO/CrossDSOCFI.h" + textual header "/usr/include/llvm/Transforms/IPO/DeadArgumentElimination.h" + textual header "/usr/include/llvm/Transforms/IPO/ElimAvailExtern.h" + textual header "/usr/include/llvm/Transforms/IPO/ForceFunctionAttrs.h" + textual header "/usr/include/llvm/Transforms/IPO/FunctionAttrs.h" + textual header "/usr/include/llvm/Transforms/IPO/FunctionImport.h" + textual header "/usr/include/llvm/Transforms/IPO/GlobalDCE.h" + textual header "/usr/include/llvm/Transforms/IPO/GlobalOpt.h" + textual header "/usr/include/llvm/Transforms/IPO/GlobalSplit.h" + textual header "/usr/include/llvm/Transforms/IPO/HotColdSplitting.h" + textual header "/usr/include/llvm/Transforms/IPO/InferFunctionAttrs.h" + textual header "/usr/include/llvm/Transforms/IPO/Inliner.h" + textual header "/usr/include/llvm/Transforms/IPO/Internalize.h" + textual header "/usr/include/llvm/Transforms/IPO/LowerTypeTests.h" + textual header "/usr/include/llvm/Transforms/IPO/MergeFunctions.h" + textual header "/usr/include/llvm/Transforms/IPO/PartialInlining.h" + textual header "/usr/include/llvm/Transforms/IPO/PassManagerBuilder.h" + textual header "/usr/include/llvm/Transforms/IPO/SCCP.h" + textual header "/usr/include/llvm/Transforms/IPO/SampleProfile.h" + textual header "/usr/include/llvm/Transforms/IPO/StripDeadPrototypes.h" + textual header "/usr/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h" + textual header "/usr/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h" + textual header "/usr/include/llvm/Transforms/IPO/WholeProgramDevirt.h" + textual header "/usr/include/llvm/Transforms/InstCombine/InstCombine.h" + textual header "/usr/include/llvm/Transforms/InstCombine/InstCombineWorklist.h" + textual header "/usr/include/llvm/Transforms/Instrumentation.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/AddressSanitizer.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/BoundsChecking.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/CGProfile.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/GCOVProfiler.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/InstrOrderFile.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/InstrProfiling.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/MemorySanitizer.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/PoisonChecking.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h" + textual header "/usr/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h" + textual header "/usr/include/llvm/Transforms/ObjCARC.h" + textual header "/usr/include/llvm/Transforms/Scalar.h" + textual header "/usr/include/llvm/Transforms/Scalar/ADCE.h" + textual header "/usr/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h" + textual header "/usr/include/llvm/Transforms/Scalar/BDCE.h" + textual header "/usr/include/llvm/Transforms/Scalar/CallSiteSplitting.h" + textual header "/usr/include/llvm/Transforms/Scalar/ConstantHoisting.h" + textual header "/usr/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h" + textual header "/usr/include/llvm/Transforms/Scalar/DCE.h" + textual header "/usr/include/llvm/Transforms/Scalar/DeadStoreElimination.h" + textual header "/usr/include/llvm/Transforms/Scalar/DivRemPairs.h" + textual header "/usr/include/llvm/Transforms/Scalar/EarlyCSE.h" + textual header "/usr/include/llvm/Transforms/Scalar/Float2Int.h" + textual header "/usr/include/llvm/Transforms/Scalar/GVN.h" + textual header "/usr/include/llvm/Transforms/Scalar/GVNExpression.h" + textual header "/usr/include/llvm/Transforms/Scalar/GuardWidening.h" + textual header "/usr/include/llvm/Transforms/Scalar/IVUsersPrinter.h" + textual header "/usr/include/llvm/Transforms/Scalar/IndVarSimplify.h" + textual header "/usr/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h" + textual header "/usr/include/llvm/Transforms/Scalar/InstSimplifyPass.h" + textual header "/usr/include/llvm/Transforms/Scalar/JumpThreading.h" + textual header "/usr/include/llvm/Transforms/Scalar/LICM.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopDataPrefetch.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopDeletion.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopDistribute.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopFuse.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopInstSimplify.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopLoadElimination.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopPassManager.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopPredication.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopRotation.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopSink.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopStrengthReduce.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h" + textual header "/usr/include/llvm/Transforms/Scalar/LoopUnrollPass.h" + textual header "/usr/include/llvm/Transforms/Scalar/LowerAtomic.h" + textual header "/usr/include/llvm/Transforms/Scalar/LowerConstantIntrinsics.h" + textual header "/usr/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h" + textual header "/usr/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h" + textual header "/usr/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h" + textual header "/usr/include/llvm/Transforms/Scalar/LowerWidenableCondition.h" + textual header "/usr/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h" + textual header "/usr/include/llvm/Transforms/Scalar/MemCpyOptimizer.h" + textual header "/usr/include/llvm/Transforms/Scalar/MergeICmps.h" + textual header "/usr/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h" + textual header "/usr/include/llvm/Transforms/Scalar/NaryReassociate.h" + textual header "/usr/include/llvm/Transforms/Scalar/NewGVN.h" + textual header "/usr/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h" + textual header "/usr/include/llvm/Transforms/Scalar/Reassociate.h" + textual header "/usr/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h" + textual header "/usr/include/llvm/Transforms/Scalar/SCCP.h" + textual header "/usr/include/llvm/Transforms/Scalar/SROA.h" + textual header "/usr/include/llvm/Transforms/Scalar/Scalarizer.h" + textual header "/usr/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h" + textual header "/usr/include/llvm/Transforms/Scalar/SimplifyCFG.h" + textual header "/usr/include/llvm/Transforms/Scalar/Sink.h" + textual header "/usr/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h" + textual header "/usr/include/llvm/Transforms/Scalar/SpeculativeExecution.h" + textual header "/usr/include/llvm/Transforms/Scalar/TailRecursionElimination.h" + textual header "/usr/include/llvm/Transforms/Scalar/WarnMissedTransforms.h" + textual header "/usr/include/llvm/Transforms/Utils.h" + textual header "/usr/include/llvm/Transforms/Utils/ASanStackFrameLayout.h" + textual header "/usr/include/llvm/Transforms/Utils/AddDiscriminators.h" + textual header "/usr/include/llvm/Transforms/Utils/BasicBlockUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/BreakCriticalEdges.h" + textual header "/usr/include/llvm/Transforms/Utils/BuildLibCalls.h" + textual header "/usr/include/llvm/Transforms/Utils/BypassSlowDivision.h" + textual header "/usr/include/llvm/Transforms/Utils/CallPromotionUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/CanonicalizeAliases.h" + textual header "/usr/include/llvm/Transforms/Utils/Cloning.h" + textual header "/usr/include/llvm/Transforms/Utils/CodeExtractor.h" + textual header "/usr/include/llvm/Transforms/Utils/CodeMoverUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/CtorUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/Debugify.h" + textual header "/usr/include/llvm/Transforms/Utils/EntryExitInstrumenter.h" + textual header "/usr/include/llvm/Transforms/Utils/EscapeEnumerator.h" + textual header "/usr/include/llvm/Transforms/Utils/Evaluator.h" + textual header "/usr/include/llvm/Transforms/Utils/FunctionComparator.h" + textual header "/usr/include/llvm/Transforms/Utils/FunctionImportUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/GlobalStatus.h" + textual header "/usr/include/llvm/Transforms/Utils/GuardUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h" + textual header "/usr/include/llvm/Transforms/Utils/InjectTLIMappings.h" + textual header "/usr/include/llvm/Transforms/Utils/IntegerDivision.h" + textual header "/usr/include/llvm/Transforms/Utils/LCSSA.h" + textual header "/usr/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h" + textual header "/usr/include/llvm/Transforms/Utils/Local.h" + textual header "/usr/include/llvm/Transforms/Utils/LoopRotationUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/LoopSimplify.h" + textual header "/usr/include/llvm/Transforms/Utils/LoopUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/LoopVersioning.h" + textual header "/usr/include/llvm/Transforms/Utils/LowerInvoke.h" + textual header "/usr/include/llvm/Transforms/Utils/LowerMemIntrinsics.h" + textual header "/usr/include/llvm/Transforms/Utils/Mem2Reg.h" + textual header "/usr/include/llvm/Transforms/Utils/MisExpect.h" + textual header "/usr/include/llvm/Transforms/Utils/ModuleUtils.h" + textual header "/usr/include/llvm/Transforms/Utils/NameAnonGlobals.h" + textual header "/usr/include/llvm/Transforms/Utils/PredicateInfo.h" + textual header "/usr/include/llvm/Transforms/Utils/PromoteMemToReg.h" + textual header "/usr/include/llvm/Transforms/Utils/SSAUpdater.h" + textual header "/usr/include/llvm/Transforms/Utils/SSAUpdaterBulk.h" + textual header "/usr/include/llvm/Transforms/Utils/SSAUpdaterImpl.h" + textual header "/usr/include/llvm/Transforms/Utils/SanitizerStats.h" + textual header "/usr/include/llvm/Transforms/Utils/SimplifyIndVar.h" + textual header "/usr/include/llvm/Transforms/Utils/SimplifyLibCalls.h" + textual header "/usr/include/llvm/Transforms/Utils/SizeOpts.h" + textual header "/usr/include/llvm/Transforms/Utils/SplitModule.h" + textual header "/usr/include/llvm/Transforms/Utils/SymbolRewriter.h" + textual header "/usr/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h" + textual header "/usr/include/llvm/Transforms/Utils/UnrollLoop.h" + textual header "/usr/include/llvm/Transforms/Utils/VNCoercion.h" + textual header "/usr/include/llvm/Transforms/Utils/ValueMapper.h" + textual header "/usr/include/llvm/Transforms/Vectorize.h" + textual header "/usr/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h" + textual header "/usr/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h" + textual header "/usr/include/llvm/Transforms/Vectorize/LoopVectorize.h" + textual header "/usr/include/llvm/Transforms/Vectorize/SLPVectorizer.h" + textual header "/usr/include/llvm/WindowsManifest/WindowsManifestMerger.h" + textual header "/usr/include/llvm/WindowsResource/ResourceProcessor.h" + textual header "/usr/include/llvm/WindowsResource/ResourceScriptToken.h" + textual header "/usr/include/llvm/WindowsResource/ResourceScriptTokenList.h" + textual header "/usr/include/llvm/XRay/BlockIndexer.h" + textual header "/usr/include/llvm/XRay/BlockPrinter.h" + textual header "/usr/include/llvm/XRay/BlockVerifier.h" + textual header "/usr/include/llvm/XRay/FDRLogBuilder.h" + textual header "/usr/include/llvm/XRay/FDRRecordConsumer.h" + textual header "/usr/include/llvm/XRay/FDRRecordProducer.h" + textual header "/usr/include/llvm/XRay/FDRRecords.h" + textual header "/usr/include/llvm/XRay/FDRTraceExpander.h" + textual header "/usr/include/llvm/XRay/FDRTraceWriter.h" + textual header "/usr/include/llvm/XRay/FileHeaderReader.h" + textual header "/usr/include/llvm/XRay/Graph.h" + textual header "/usr/include/llvm/XRay/InstrumentationMap.h" + textual header "/usr/include/llvm/XRay/Profile.h" + textual header "/usr/include/llvm/XRay/RecordPrinter.h" + textual header "/usr/include/llvm/XRay/Trace.h" + textual header "/usr/include/llvm/XRay/XRayRecord.h" + textual header "/usr/include/llvm/XRay/YAMLXRayRecord.h" + textual header "/usr/include/locale.h" + textual header "/usr/include/malloc.h" + textual header "/usr/include/math.h" + textual header "/usr/include/mcheck.h" + textual header "/usr/include/memory.h" + textual header "/usr/include/menu.h" + textual header "/usr/include/misc/cxl.h" + textual header "/usr/include/misc/fastrpc.h" + textual header "/usr/include/misc/habanalabs.h" + textual header "/usr/include/misc/ocxl.h" + textual header "/usr/include/misc/xilinx_sdfec.h" + textual header "/usr/include/mntent.h" + textual header "/usr/include/monetary.h" + textual header "/usr/include/mqueue.h" + textual header "/usr/include/mtd/inftl-user.h" + textual header "/usr/include/mtd/mtd-abi.h" + textual header "/usr/include/mtd/mtd-user.h" + textual header "/usr/include/mtd/nftl-user.h" + textual header "/usr/include/mtd/ubi-user.h" + textual header "/usr/include/nc_tparm.h" + textual header "/usr/include/ncurses.h" + textual header "/usr/include/ncurses_dll.h" + textual header "/usr/include/ncursesw/curses.h" + textual header "/usr/include/ncursesw/cursesapp.h" + textual header "/usr/include/ncursesw/cursesf.h" + textual header "/usr/include/ncursesw/cursesm.h" + textual header "/usr/include/ncursesw/cursesp.h" + textual header "/usr/include/ncursesw/cursesw.h" + textual header "/usr/include/ncursesw/cursslk.h" + textual header "/usr/include/ncursesw/eti.h" + textual header "/usr/include/ncursesw/etip.h" + textual header "/usr/include/ncursesw/form.h" + textual header "/usr/include/ncursesw/menu.h" + textual header "/usr/include/ncursesw/nc_tparm.h" + textual header "/usr/include/ncursesw/ncurses.h" + textual header "/usr/include/ncursesw/ncurses_dll.h" + textual header "/usr/include/ncursesw/panel.h" + textual header "/usr/include/ncursesw/term.h" + textual header "/usr/include/ncursesw/term_entry.h" + textual header "/usr/include/ncursesw/termcap.h" + textual header "/usr/include/ncursesw/tic.h" + textual header "/usr/include/ncursesw/unctrl.h" + textual header "/usr/include/net/ethernet.h" + textual header "/usr/include/net/if.h" + textual header "/usr/include/net/if_arp.h" + textual header "/usr/include/net/if_packet.h" + textual header "/usr/include/net/if_ppp.h" + textual header "/usr/include/net/if_shaper.h" + textual header "/usr/include/net/if_slip.h" + textual header "/usr/include/net/ppp-comp.h" + textual header "/usr/include/net/ppp_defs.h" + textual header "/usr/include/net/route.h" + textual header "/usr/include/netash/ash.h" + textual header "/usr/include/netatalk/at.h" + textual header "/usr/include/netax25/ax25.h" + textual header "/usr/include/netdb.h" + textual header "/usr/include/neteconet/ec.h" + textual header "/usr/include/netinet/ether.h" + textual header "/usr/include/netinet/icmp6.h" + textual header "/usr/include/netinet/if_ether.h" + textual header "/usr/include/netinet/if_fddi.h" + textual header "/usr/include/netinet/if_tr.h" + textual header "/usr/include/netinet/igmp.h" + textual header "/usr/include/netinet/in.h" + textual header "/usr/include/netinet/in_systm.h" + textual header "/usr/include/netinet/ip.h" + textual header "/usr/include/netinet/ip6.h" + textual header "/usr/include/netinet/ip_icmp.h" + textual header "/usr/include/netinet/tcp.h" + textual header "/usr/include/netinet/udp.h" + textual header "/usr/include/netipx/ipx.h" + textual header "/usr/include/netiucv/iucv.h" + textual header "/usr/include/netpacket/packet.h" + textual header "/usr/include/netrom/netrom.h" + textual header "/usr/include/netrose/rose.h" + textual header "/usr/include/nfs/nfs.h" + textual header "/usr/include/nl_types.h" + textual header "/usr/include/nss.h" + textual header "/usr/include/obstack.h" + textual header "/usr/include/openssl/aes.h" + textual header "/usr/include/openssl/asn1.h" + textual header "/usr/include/openssl/asn1_mac.h" + textual header "/usr/include/openssl/asn1err.h" + textual header "/usr/include/openssl/asn1t.h" + textual header "/usr/include/openssl/async.h" + textual header "/usr/include/openssl/asyncerr.h" + textual header "/usr/include/openssl/bio.h" + textual header "/usr/include/openssl/bioerr.h" + textual header "/usr/include/openssl/blowfish.h" + textual header "/usr/include/openssl/bn.h" + textual header "/usr/include/openssl/bnerr.h" + textual header "/usr/include/openssl/buffer.h" + textual header "/usr/include/openssl/buffererr.h" + textual header "/usr/include/openssl/camellia.h" + textual header "/usr/include/openssl/cast.h" + textual header "/usr/include/openssl/cmac.h" + textual header "/usr/include/openssl/cms.h" + textual header "/usr/include/openssl/cmserr.h" + textual header "/usr/include/openssl/comp.h" + textual header "/usr/include/openssl/comperr.h" + textual header "/usr/include/openssl/conf.h" + textual header "/usr/include/openssl/conf_api.h" + textual header "/usr/include/openssl/conferr.h" + textual header "/usr/include/openssl/crypto.h" + textual header "/usr/include/openssl/cryptoerr.h" + textual header "/usr/include/openssl/ct.h" + textual header "/usr/include/openssl/cterr.h" + textual header "/usr/include/openssl/des.h" + textual header "/usr/include/openssl/dh.h" + textual header "/usr/include/openssl/dherr.h" + textual header "/usr/include/openssl/dsa.h" + textual header "/usr/include/openssl/dsaerr.h" + textual header "/usr/include/openssl/dtls1.h" + textual header "/usr/include/openssl/e_os2.h" + textual header "/usr/include/openssl/ebcdic.h" + textual header "/usr/include/openssl/ec.h" + textual header "/usr/include/openssl/ecdh.h" + textual header "/usr/include/openssl/ecdsa.h" + textual header "/usr/include/openssl/ecerr.h" + textual header "/usr/include/openssl/engine.h" + textual header "/usr/include/openssl/engineerr.h" + textual header "/usr/include/openssl/err.h" + textual header "/usr/include/openssl/evp.h" + textual header "/usr/include/openssl/evperr.h" + textual header "/usr/include/openssl/hmac.h" + textual header "/usr/include/openssl/idea.h" + textual header "/usr/include/openssl/kdf.h" + textual header "/usr/include/openssl/kdferr.h" + textual header "/usr/include/openssl/lhash.h" + textual header "/usr/include/openssl/md2.h" + textual header "/usr/include/openssl/md4.h" + textual header "/usr/include/openssl/md5.h" + textual header "/usr/include/openssl/mdc2.h" + textual header "/usr/include/openssl/modes.h" + textual header "/usr/include/openssl/obj_mac.h" + textual header "/usr/include/openssl/objects.h" + textual header "/usr/include/openssl/objectserr.h" + textual header "/usr/include/openssl/ocsp.h" + textual header "/usr/include/openssl/ocsperr.h" + textual header "/usr/include/openssl/opensslv.h" + textual header "/usr/include/openssl/ossl_typ.h" + textual header "/usr/include/openssl/pem.h" + textual header "/usr/include/openssl/pem2.h" + textual header "/usr/include/openssl/pemerr.h" + textual header "/usr/include/openssl/pkcs12.h" + textual header "/usr/include/openssl/pkcs12err.h" + textual header "/usr/include/openssl/pkcs7.h" + textual header "/usr/include/openssl/pkcs7err.h" + textual header "/usr/include/openssl/rand.h" + textual header "/usr/include/openssl/rand_drbg.h" + textual header "/usr/include/openssl/randerr.h" + textual header "/usr/include/openssl/rc2.h" + textual header "/usr/include/openssl/rc4.h" + textual header "/usr/include/openssl/rc5.h" + textual header "/usr/include/openssl/ripemd.h" + textual header "/usr/include/openssl/rsa.h" + textual header "/usr/include/openssl/rsaerr.h" + textual header "/usr/include/openssl/safestack.h" + textual header "/usr/include/openssl/seed.h" + textual header "/usr/include/openssl/sha.h" + textual header "/usr/include/openssl/srp.h" + textual header "/usr/include/openssl/srtp.h" + textual header "/usr/include/openssl/ssl.h" + textual header "/usr/include/openssl/ssl2.h" + textual header "/usr/include/openssl/ssl3.h" + textual header "/usr/include/openssl/sslerr.h" + textual header "/usr/include/openssl/stack.h" + textual header "/usr/include/openssl/store.h" + textual header "/usr/include/openssl/storeerr.h" + textual header "/usr/include/openssl/symhacks.h" + textual header "/usr/include/openssl/tls1.h" + textual header "/usr/include/openssl/ts.h" + textual header "/usr/include/openssl/tserr.h" + textual header "/usr/include/openssl/txt_db.h" + textual header "/usr/include/openssl/ui.h" + textual header "/usr/include/openssl/uierr.h" + textual header "/usr/include/openssl/whrlpool.h" + textual header "/usr/include/openssl/x509.h" + textual header "/usr/include/openssl/x509_vfy.h" + textual header "/usr/include/openssl/x509err.h" + textual header "/usr/include/openssl/x509v3.h" + textual header "/usr/include/openssl/x509v3err.h" + textual header "/usr/include/panel.h" + textual header "/usr/include/paths.h" + textual header "/usr/include/poll.h" + textual header "/usr/include/printf.h" + textual header "/usr/include/proc_service.h" + textual header "/usr/include/protocols/routed.h" + textual header "/usr/include/protocols/rwhod.h" + textual header "/usr/include/protocols/talkd.h" + textual header "/usr/include/protocols/timed.h" + textual header "/usr/include/pthread.h" + textual header "/usr/include/pty.h" + textual header "/usr/include/pwd.h" + textual header "/usr/include/python2.7/Python-ast.h" + textual header "/usr/include/python2.7/Python.h" + textual header "/usr/include/python2.7/abstract.h" + textual header "/usr/include/python2.7/asdl.h" + textual header "/usr/include/python2.7/ast.h" + textual header "/usr/include/python2.7/bitset.h" + textual header "/usr/include/python2.7/boolobject.h" + textual header "/usr/include/python2.7/bufferobject.h" + textual header "/usr/include/python2.7/bytearrayobject.h" + textual header "/usr/include/python2.7/bytes_methods.h" + textual header "/usr/include/python2.7/bytesobject.h" + textual header "/usr/include/python2.7/cStringIO.h" + textual header "/usr/include/python2.7/cellobject.h" + textual header "/usr/include/python2.7/ceval.h" + textual header "/usr/include/python2.7/classobject.h" + textual header "/usr/include/python2.7/cobject.h" + textual header "/usr/include/python2.7/code.h" + textual header "/usr/include/python2.7/codecs.h" + textual header "/usr/include/python2.7/compile.h" + textual header "/usr/include/python2.7/complexobject.h" + textual header "/usr/include/python2.7/datetime.h" + textual header "/usr/include/python2.7/descrobject.h" + textual header "/usr/include/python2.7/dictobject.h" + textual header "/usr/include/python2.7/dtoa.h" + textual header "/usr/include/python2.7/enumobject.h" + textual header "/usr/include/python2.7/errcode.h" + textual header "/usr/include/python2.7/eval.h" + textual header "/usr/include/python2.7/fileobject.h" + textual header "/usr/include/python2.7/floatobject.h" + textual header "/usr/include/python2.7/frameobject.h" + textual header "/usr/include/python2.7/funcobject.h" + textual header "/usr/include/python2.7/genobject.h" + textual header "/usr/include/python2.7/graminit.h" + textual header "/usr/include/python2.7/grammar.h" + textual header "/usr/include/python2.7/import.h" + textual header "/usr/include/python2.7/intobject.h" + textual header "/usr/include/python2.7/intrcheck.h" + textual header "/usr/include/python2.7/iterobject.h" + textual header "/usr/include/python2.7/listobject.h" + textual header "/usr/include/python2.7/longintrepr.h" + textual header "/usr/include/python2.7/longobject.h" + textual header "/usr/include/python2.7/marshal.h" + textual header "/usr/include/python2.7/memoryobject.h" + textual header "/usr/include/python2.7/metagrammar.h" + textual header "/usr/include/python2.7/methodobject.h" + textual header "/usr/include/python2.7/modsupport.h" + textual header "/usr/include/python2.7/moduleobject.h" + textual header "/usr/include/python2.7/node.h" + textual header "/usr/include/python2.7/object.h" + textual header "/usr/include/python2.7/objimpl.h" + textual header "/usr/include/python2.7/opcode.h" + textual header "/usr/include/python2.7/osdefs.h" + textual header "/usr/include/python2.7/parsetok.h" + textual header "/usr/include/python2.7/patchlevel.h" + textual header "/usr/include/python2.7/pgen.h" + textual header "/usr/include/python2.7/pgenheaders.h" + textual header "/usr/include/python2.7/py_curses.h" + textual header "/usr/include/python2.7/pyarena.h" + textual header "/usr/include/python2.7/pycapsule.h" + textual header "/usr/include/python2.7/pyconfig.h" + textual header "/usr/include/python2.7/pyctype.h" + textual header "/usr/include/python2.7/pydebug.h" + textual header "/usr/include/python2.7/pyerrors.h" + textual header "/usr/include/python2.7/pyexpat.h" + textual header "/usr/include/python2.7/pyfpe.h" + textual header "/usr/include/python2.7/pygetopt.h" + textual header "/usr/include/python2.7/pymacconfig.h" + textual header "/usr/include/python2.7/pymactoolbox.h" + textual header "/usr/include/python2.7/pymath.h" + textual header "/usr/include/python2.7/pymem.h" + textual header "/usr/include/python2.7/pyport.h" + textual header "/usr/include/python2.7/pystate.h" + textual header "/usr/include/python2.7/pystrcmp.h" + textual header "/usr/include/python2.7/pystrtod.h" + textual header "/usr/include/python2.7/pythonrun.h" + textual header "/usr/include/python2.7/pythread.h" + textual header "/usr/include/python2.7/rangeobject.h" + textual header "/usr/include/python2.7/setobject.h" + textual header "/usr/include/python2.7/sliceobject.h" + textual header "/usr/include/python2.7/stringobject.h" + textual header "/usr/include/python2.7/structmember.h" + textual header "/usr/include/python2.7/structseq.h" + textual header "/usr/include/python2.7/symtable.h" + textual header "/usr/include/python2.7/sysmodule.h" + textual header "/usr/include/python2.7/timefuncs.h" + textual header "/usr/include/python2.7/token.h" + textual header "/usr/include/python2.7/traceback.h" + textual header "/usr/include/python2.7/tupleobject.h" + textual header "/usr/include/python2.7/ucnhash.h" + textual header "/usr/include/python2.7/unicodeobject.h" + textual header "/usr/include/python2.7/warnings.h" + textual header "/usr/include/python2.7/weakrefobject.h" + textual header "/usr/include/python3.8/Python-ast.h" + textual header "/usr/include/python3.8/Python.h" + textual header "/usr/include/python3.8/abstract.h" + textual header "/usr/include/python3.8/asdl.h" + textual header "/usr/include/python3.8/ast.h" + textual header "/usr/include/python3.8/bitset.h" + textual header "/usr/include/python3.8/bltinmodule.h" + textual header "/usr/include/python3.8/boolobject.h" + textual header "/usr/include/python3.8/bytearrayobject.h" + textual header "/usr/include/python3.8/bytes_methods.h" + textual header "/usr/include/python3.8/bytesobject.h" + textual header "/usr/include/python3.8/cellobject.h" + textual header "/usr/include/python3.8/ceval.h" + textual header "/usr/include/python3.8/classobject.h" + textual header "/usr/include/python3.8/code.h" + textual header "/usr/include/python3.8/codecs.h" + textual header "/usr/include/python3.8/compile.h" + textual header "/usr/include/python3.8/complexobject.h" + textual header "/usr/include/python3.8/context.h" + textual header "/usr/include/python3.8/cpython/abstract.h" + textual header "/usr/include/python3.8/cpython/dictobject.h" + textual header "/usr/include/python3.8/cpython/fileobject.h" + textual header "/usr/include/python3.8/cpython/initconfig.h" + textual header "/usr/include/python3.8/cpython/interpreteridobject.h" + textual header "/usr/include/python3.8/cpython/object.h" + textual header "/usr/include/python3.8/cpython/objimpl.h" + textual header "/usr/include/python3.8/cpython/pyerrors.h" + textual header "/usr/include/python3.8/cpython/pylifecycle.h" + textual header "/usr/include/python3.8/cpython/pymem.h" + textual header "/usr/include/python3.8/cpython/pystate.h" + textual header "/usr/include/python3.8/cpython/sysmodule.h" + textual header "/usr/include/python3.8/cpython/traceback.h" + textual header "/usr/include/python3.8/cpython/tupleobject.h" + textual header "/usr/include/python3.8/cpython/unicodeobject.h" + textual header "/usr/include/python3.8/datetime.h" + textual header "/usr/include/python3.8/descrobject.h" + textual header "/usr/include/python3.8/dictobject.h" + textual header "/usr/include/python3.8/dtoa.h" + textual header "/usr/include/python3.8/dynamic_annotations.h" + textual header "/usr/include/python3.8/enumobject.h" + textual header "/usr/include/python3.8/errcode.h" + textual header "/usr/include/python3.8/eval.h" + textual header "/usr/include/python3.8/fileobject.h" + textual header "/usr/include/python3.8/fileutils.h" + textual header "/usr/include/python3.8/floatobject.h" + textual header "/usr/include/python3.8/frameobject.h" + textual header "/usr/include/python3.8/funcobject.h" + textual header "/usr/include/python3.8/genobject.h" + textual header "/usr/include/python3.8/graminit.h" + textual header "/usr/include/python3.8/grammar.h" + textual header "/usr/include/python3.8/import.h" + textual header "/usr/include/python3.8/internal/pycore_accu.h" + textual header "/usr/include/python3.8/internal/pycore_atomic.h" + textual header "/usr/include/python3.8/internal/pycore_ceval.h" + textual header "/usr/include/python3.8/internal/pycore_code.h" + textual header "/usr/include/python3.8/internal/pycore_condvar.h" + textual header "/usr/include/python3.8/internal/pycore_context.h" + textual header "/usr/include/python3.8/internal/pycore_fileutils.h" + textual header "/usr/include/python3.8/internal/pycore_getopt.h" + textual header "/usr/include/python3.8/internal/pycore_gil.h" + textual header "/usr/include/python3.8/internal/pycore_hamt.h" + textual header "/usr/include/python3.8/internal/pycore_initconfig.h" + textual header "/usr/include/python3.8/internal/pycore_object.h" + textual header "/usr/include/python3.8/internal/pycore_pathconfig.h" + textual header "/usr/include/python3.8/internal/pycore_pyerrors.h" + textual header "/usr/include/python3.8/internal/pycore_pyhash.h" + textual header "/usr/include/python3.8/internal/pycore_pylifecycle.h" + textual header "/usr/include/python3.8/internal/pycore_pymem.h" + textual header "/usr/include/python3.8/internal/pycore_pystate.h" + textual header "/usr/include/python3.8/internal/pycore_traceback.h" + textual header "/usr/include/python3.8/internal/pycore_tupleobject.h" + textual header "/usr/include/python3.8/internal/pycore_warnings.h" + textual header "/usr/include/python3.8/interpreteridobject.h" + textual header "/usr/include/python3.8/intrcheck.h" + textual header "/usr/include/python3.8/iterobject.h" + textual header "/usr/include/python3.8/listobject.h" + textual header "/usr/include/python3.8/longintrepr.h" + textual header "/usr/include/python3.8/longobject.h" + textual header "/usr/include/python3.8/marshal.h" + textual header "/usr/include/python3.8/memoryobject.h" + textual header "/usr/include/python3.8/methodobject.h" + textual header "/usr/include/python3.8/modsupport.h" + textual header "/usr/include/python3.8/moduleobject.h" + textual header "/usr/include/python3.8/namespaceobject.h" + textual header "/usr/include/python3.8/node.h" + textual header "/usr/include/python3.8/object.h" + textual header "/usr/include/python3.8/objimpl.h" + textual header "/usr/include/python3.8/odictobject.h" + textual header "/usr/include/python3.8/opcode.h" + textual header "/usr/include/python3.8/osdefs.h" + textual header "/usr/include/python3.8/osmodule.h" + textual header "/usr/include/python3.8/parsetok.h" + textual header "/usr/include/python3.8/patchlevel.h" + textual header "/usr/include/python3.8/picklebufobject.h" + textual header "/usr/include/python3.8/py_curses.h" + textual header "/usr/include/python3.8/pyarena.h" + textual header "/usr/include/python3.8/pycapsule.h" + textual header "/usr/include/python3.8/pyconfig.h" + textual header "/usr/include/python3.8/pyctype.h" + textual header "/usr/include/python3.8/pydebug.h" + textual header "/usr/include/python3.8/pydtrace.h" + textual header "/usr/include/python3.8/pyerrors.h" + textual header "/usr/include/python3.8/pyexpat.h" + textual header "/usr/include/python3.8/pyfpe.h" + textual header "/usr/include/python3.8/pyhash.h" + textual header "/usr/include/python3.8/pylifecycle.h" + textual header "/usr/include/python3.8/pymacconfig.h" + textual header "/usr/include/python3.8/pymacro.h" + textual header "/usr/include/python3.8/pymath.h" + textual header "/usr/include/python3.8/pymem.h" + textual header "/usr/include/python3.8/pyport.h" + textual header "/usr/include/python3.8/pystate.h" + textual header "/usr/include/python3.8/pystrcmp.h" + textual header "/usr/include/python3.8/pystrhex.h" + textual header "/usr/include/python3.8/pystrtod.h" + textual header "/usr/include/python3.8/pythonrun.h" + textual header "/usr/include/python3.8/pythread.h" + textual header "/usr/include/python3.8/pytime.h" + textual header "/usr/include/python3.8/rangeobject.h" + textual header "/usr/include/python3.8/setobject.h" + textual header "/usr/include/python3.8/sliceobject.h" + textual header "/usr/include/python3.8/structmember.h" + textual header "/usr/include/python3.8/structseq.h" + textual header "/usr/include/python3.8/symtable.h" + textual header "/usr/include/python3.8/sysmodule.h" + textual header "/usr/include/python3.8/token.h" + textual header "/usr/include/python3.8/traceback.h" + textual header "/usr/include/python3.8/tracemalloc.h" + textual header "/usr/include/python3.8/tupleobject.h" + textual header "/usr/include/python3.8/typeslots.h" + textual header "/usr/include/python3.8/ucnhash.h" + textual header "/usr/include/python3.8/unicodeobject.h" + textual header "/usr/include/python3.8/warnings.h" + textual header "/usr/include/python3.8/weakrefobject.h" + textual header "/usr/include/rdma/bnxt_re-abi.h" + textual header "/usr/include/rdma/cxgb3-abi.h" + textual header "/usr/include/rdma/cxgb4-abi.h" + textual header "/usr/include/rdma/efa-abi.h" + textual header "/usr/include/rdma/hfi/hfi1_ioctl.h" + textual header "/usr/include/rdma/hfi/hfi1_user.h" + textual header "/usr/include/rdma/hns-abi.h" + textual header "/usr/include/rdma/i40iw-abi.h" + textual header "/usr/include/rdma/ib_user_ioctl_cmds.h" + textual header "/usr/include/rdma/ib_user_ioctl_verbs.h" + textual header "/usr/include/rdma/ib_user_mad.h" + textual header "/usr/include/rdma/ib_user_sa.h" + textual header "/usr/include/rdma/ib_user_verbs.h" + textual header "/usr/include/rdma/mlx4-abi.h" + textual header "/usr/include/rdma/mlx5-abi.h" + textual header "/usr/include/rdma/mlx5_user_ioctl_cmds.h" + textual header "/usr/include/rdma/mlx5_user_ioctl_verbs.h" + textual header "/usr/include/rdma/mthca-abi.h" + textual header "/usr/include/rdma/ocrdma-abi.h" + textual header "/usr/include/rdma/qedr-abi.h" + textual header "/usr/include/rdma/rdma_netlink.h" + textual header "/usr/include/rdma/rdma_user_cm.h" + textual header "/usr/include/rdma/rdma_user_ioctl.h" + textual header "/usr/include/rdma/rdma_user_ioctl_cmds.h" + textual header "/usr/include/rdma/rdma_user_rxe.h" + textual header "/usr/include/rdma/rvt-abi.h" + textual header "/usr/include/rdma/siw-abi.h" + textual header "/usr/include/rdma/vmw_pvrdma-abi.h" + textual header "/usr/include/re_comp.h" + textual header "/usr/include/regex.h" + textual header "/usr/include/regexp.h" + textual header "/usr/include/resolv.h" + textual header "/usr/include/rpc/auth.h" + textual header "/usr/include/rpc/auth_des.h" + textual header "/usr/include/rpc/auth_unix.h" + textual header "/usr/include/rpc/clnt.h" + textual header "/usr/include/rpc/key_prot.h" + textual header "/usr/include/rpc/netdb.h" + textual header "/usr/include/rpc/pmap_clnt.h" + textual header "/usr/include/rpc/pmap_prot.h" + textual header "/usr/include/rpc/pmap_rmt.h" + textual header "/usr/include/rpc/rpc.h" + textual header "/usr/include/rpc/rpc_msg.h" + textual header "/usr/include/rpc/svc.h" + textual header "/usr/include/rpc/svc_auth.h" + textual header "/usr/include/rpc/types.h" + textual header "/usr/include/rpc/xdr.h" + textual header "/usr/include/rpcsvc/bootparam.h" + textual header "/usr/include/rpcsvc/bootparam_prot.h" + textual header "/usr/include/rpcsvc/bootparam_prot.x" + textual header "/usr/include/rpcsvc/key_prot.h" + textual header "/usr/include/rpcsvc/key_prot.x" + textual header "/usr/include/rpcsvc/klm_prot.h" + textual header "/usr/include/rpcsvc/klm_prot.x" + textual header "/usr/include/rpcsvc/mount.h" + textual header "/usr/include/rpcsvc/mount.x" + textual header "/usr/include/rpcsvc/nfs_prot.h" + textual header "/usr/include/rpcsvc/nfs_prot.x" + textual header "/usr/include/rpcsvc/nis.h" + textual header "/usr/include/rpcsvc/nis.x" + textual header "/usr/include/rpcsvc/nis_callback.h" + textual header "/usr/include/rpcsvc/nis_callback.x" + textual header "/usr/include/rpcsvc/nis_object.x" + textual header "/usr/include/rpcsvc/nis_tags.h" + textual header "/usr/include/rpcsvc/nislib.h" + textual header "/usr/include/rpcsvc/nlm_prot.h" + textual header "/usr/include/rpcsvc/nlm_prot.x" + textual header "/usr/include/rpcsvc/rex.h" + textual header "/usr/include/rpcsvc/rex.x" + textual header "/usr/include/rpcsvc/rquota.h" + textual header "/usr/include/rpcsvc/rquota.x" + textual header "/usr/include/rpcsvc/rstat.h" + textual header "/usr/include/rpcsvc/rstat.x" + textual header "/usr/include/rpcsvc/rusers.h" + textual header "/usr/include/rpcsvc/rusers.x" + textual header "/usr/include/rpcsvc/sm_inter.h" + textual header "/usr/include/rpcsvc/sm_inter.x" + textual header "/usr/include/rpcsvc/spray.h" + textual header "/usr/include/rpcsvc/spray.x" + textual header "/usr/include/rpcsvc/yp.h" + textual header "/usr/include/rpcsvc/yp.x" + textual header "/usr/include/rpcsvc/yp_prot.h" + textual header "/usr/include/rpcsvc/ypclnt.h" + textual header "/usr/include/rpcsvc/yppasswd.h" + textual header "/usr/include/rpcsvc/yppasswd.x" + textual header "/usr/include/rpcsvc/ypupd.h" + textual header "/usr/include/sched.h" + textual header "/usr/include/scsi/cxlflash_ioctl.h" + textual header "/usr/include/scsi/fc/fc_els.h" + textual header "/usr/include/scsi/fc/fc_fs.h" + textual header "/usr/include/scsi/fc/fc_gs.h" + textual header "/usr/include/scsi/fc/fc_ns.h" + textual header "/usr/include/scsi/scsi.h" + textual header "/usr/include/scsi/scsi_bsg_fc.h" + textual header "/usr/include/scsi/scsi_bsg_ufs.h" + textual header "/usr/include/scsi/scsi_ioctl.h" + textual header "/usr/include/scsi/scsi_netlink.h" + textual header "/usr/include/scsi/scsi_netlink_fc.h" + textual header "/usr/include/scsi/sg.h" + textual header "/usr/include/search.h" + textual header "/usr/include/semaphore.h" + textual header "/usr/include/setjmp.h" + textual header "/usr/include/sgtty.h" + textual header "/usr/include/shadow.h" + textual header "/usr/include/signal.h" + textual header "/usr/include/sound/asequencer.h" + textual header "/usr/include/sound/asoc.h" + textual header "/usr/include/sound/asound.h" + textual header "/usr/include/sound/asound_fm.h" + textual header "/usr/include/sound/compress_offload.h" + textual header "/usr/include/sound/compress_params.h" + textual header "/usr/include/sound/emu10k1.h" + textual header "/usr/include/sound/firewire.h" + textual header "/usr/include/sound/hdsp.h" + textual header "/usr/include/sound/hdspm.h" + textual header "/usr/include/sound/sb16_csp.h" + textual header "/usr/include/sound/sfnt_info.h" + textual header "/usr/include/sound/skl-tplg-interface.h" + textual header "/usr/include/sound/snd_sst_tokens.h" + textual header "/usr/include/sound/sof/abi.h" + textual header "/usr/include/sound/sof/fw.h" + textual header "/usr/include/sound/sof/header.h" + textual header "/usr/include/sound/sof/tokens.h" + textual header "/usr/include/sound/tlv.h" + textual header "/usr/include/sound/usb_stream.h" + textual header "/usr/include/spawn.h" + textual header "/usr/include/stab.h" + textual header "/usr/include/stdc-predef.h" + textual header "/usr/include/stdint.h" + textual header "/usr/include/stdio.h" + textual header "/usr/include/stdio_ext.h" + textual header "/usr/include/stdlib.h" + textual header "/usr/include/string.h" + textual header "/usr/include/strings.h" + textual header "/usr/include/sudo_plugin.h" + textual header "/usr/include/syscall.h" + textual header "/usr/include/sysexits.h" + textual header "/usr/include/syslog.h" + textual header "/usr/include/tar.h" + textual header "/usr/include/term.h" + textual header "/usr/include/term_entry.h" + textual header "/usr/include/termcap.h" + textual header "/usr/include/termio.h" + textual header "/usr/include/termios.h" + textual header "/usr/include/tgmath.h" + textual header "/usr/include/thread_db.h" + textual header "/usr/include/threads.h" + textual header "/usr/include/tic.h" + textual header "/usr/include/time.h" + textual header "/usr/include/ttyent.h" + textual header "/usr/include/uchar.h" + textual header "/usr/include/ucontext.h" + textual header "/usr/include/ulimit.h" + textual header "/usr/include/unctrl.h" + textual header "/usr/include/unistd.h" + textual header "/usr/include/utime.h" + textual header "/usr/include/utmp.h" + textual header "/usr/include/utmpx.h" + textual header "/usr/include/values.h" + textual header "/usr/include/video/edid.h" + textual header "/usr/include/video/sisfb.h" + textual header "/usr/include/video/uvesafb.h" + textual header "/usr/include/wait.h" + textual header "/usr/include/wchar.h" + textual header "/usr/include/wctype.h" + textual header "/usr/include/wordexp.h" + textual header "/usr/include/x86_64-linux-gnu/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/auxvec.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bitsperlong.h" + textual header "/usr/include/x86_64-linux-gnu/asm/boot.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bootparam.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bpf_perf_event.h" + textual header "/usr/include/x86_64-linux-gnu/asm/byteorder.h" + textual header "/usr/include/x86_64-linux-gnu/asm/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/asm/e820.h" + textual header "/usr/include/x86_64-linux-gnu/asm/errno.h" + textual header "/usr/include/x86_64-linux-gnu/asm/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hw_breakpoint.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hwcap2.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ipcbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ist.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_para.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_perf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ldt.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mce.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mman.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msgbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mtrr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/param.h" + textual header "/usr/include/x86_64-linux-gnu/asm/perf_regs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/poll.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/processor-flags.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace-abi.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/asm/resource.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sembuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/setup.h" + textual header "/usr/include/x86_64-linux-gnu/asm/shmbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/siginfo.h" + textual header "/usr/include/x86_64-linux-gnu/asm/signal.h" + textual header "/usr/include/x86_64-linux-gnu/asm/socket.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sockios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/stat.h" + textual header "/usr/include/x86_64-linux-gnu/asm/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/svm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/swab.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termbits.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vmx.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vsyscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/bits/argp-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/byteswap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cmathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/confname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dlfcn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/elfclass.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endian.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endianness.h" + textual header "/usr/include/x86_64-linux-gnu/bits/environments.h" + textual header "/usr/include/x86_64-linux-gnu/bits/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/err-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/errno.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error.h" + textual header "/usr/include/x86_64-linux-gnu/bits/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fenv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fenvinline.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_core.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_posix.h" + textual header "/usr/include/x86_64-linux-gnu/bits/hwcap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/in.h" + textual header "/usr/include/x86_64-linux-gnu/bits/indirect-return.h" + textual header "/usr/include/x86_64-linux-gnu/bits/initspin.h" + textual header "/usr/include/x86_64-linux-gnu/bits/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctl-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc-perm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipctypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/link.h" + textual header "/usr/include/x86_64-linux-gnu/bits/local_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/locale.h" + textual header "/usr/include/x86_64-linux-gnu/bits/long-double.h" + textual header "/usr/include/x86_64-linux-gnu/bits/math-vector.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathdef.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathinline.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman.h" + textual header "/usr/include/x86_64-linux-gnu/bits/monetary-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/msq-pad.h" + textual header "/usr/include/x86_64-linux-gnu/bits/msq.h" + textual header "/usr/include/x86_64-linux-gnu/bits/netdb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix_opt.h" + textual header "/usr/include/x86_64-linux-gnu/bits/printf-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-extra.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-id.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-prregset.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ptrace-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/resource.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sched.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sem-pad.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sem.h" + textual header "/usr/include/x86_64-linux-gnu/bits/semaphore.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shm-pad.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shmlba.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigaction.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signal_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigthread.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket-constants.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket_type.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ss_flags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stab.def" + textual header "/usr/include/x86_64-linux-gnu/bits/stat.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib.h" + textual header "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sysctl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-path.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-baud.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-misc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-struct.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-tcflow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios.h" + textual header "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time64.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timesize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/error_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/res_state.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/typesizes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio-ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmpx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitflags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wordsize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/basic_file.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++io.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/cxxabi_tweaks.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/extc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-posix.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-single.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/stdtr1c++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/ext/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/expat_config.h" + textual header "/usr/include/x86_64-linux-gnu/ffi.h" + textual header "/usr/include/x86_64-linux-gnu/ffitarget.h" + textual header "/usr/include/x86_64-linux-gnu/fpu_control.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/libc-version.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs.h" + textual header "/usr/include/x86_64-linux-gnu/ieee754.h" + textual header "/usr/include/x86_64-linux-gnu/openssl/opensslconf.h" + textual header "/usr/include/x86_64-linux-gnu/python2.7/pyconfig.h" + textual header "/usr/include/x86_64-linux-gnu/python3.8/pyconfig.h" + textual header "/usr/include/x86_64-linux-gnu/sys/acct.h" + textual header "/usr/include/x86_64-linux-gnu/sys/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/sys/bitypes.h" + textual header "/usr/include/x86_64-linux-gnu/sys/cdefs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/dir.h" + textual header "/usr/include/x86_64-linux-gnu/sys/elf.h" + textual header "/usr/include/x86_64-linux-gnu/sys/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/errno.h" + textual header "/usr/include/x86_64-linux-gnu/sys/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fanotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/file.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fsuid.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon_out.h" + textual header "/usr/include/x86_64-linux-gnu/sys/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/io.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/sys/kd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/klog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mman.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mount.h" + textual header "/usr/include/x86_64-linux-gnu/sys/msg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mtio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/param.h" + textual header "/usr/include/x86_64-linux-gnu/sys/pci.h" + textual header "/usr/include/x86_64-linux-gnu/sys/perm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/personality.h" + textual header "/usr/include/x86_64-linux-gnu/sys/poll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/profil.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/sys/queue.h" + textual header "/usr/include/x86_64-linux-gnu/sys/quota.h" + textual header "/usr/include/x86_64-linux-gnu/sys/random.h" + textual header "/usr/include/x86_64-linux-gnu/sys/raw.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reboot.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/resource.h" + textual header "/usr/include/x86_64-linux-gnu/sys/select.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sem.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sendfile.h" + textual header "/usr/include/x86_64-linux-gnu/sys/shm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signal.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socket.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socketvar.h" + textual header "/usr/include/x86_64-linux-gnu/sys/soundcard.h" + textual header "/usr/include/x86_64-linux-gnu/sys/stat.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/swap.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysinfo.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/sys/termios.h" + textual header "/usr/include/x86_64-linux-gnu/sys/time.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timeb.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/times.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timex.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttychars.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttydefaults.h" + textual header "/usr/include/x86_64-linux-gnu/sys/types.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/sys/uio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/un.h" + textual header "/usr/include/x86_64-linux-gnu/sys/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/user.h" + textual header "/usr/include/x86_64-linux-gnu/sys/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vlimit.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vt.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vtimes.h" + textual header "/usr/include/x86_64-linux-gnu/sys/wait.h" + textual header "/usr/include/x86_64-linux-gnu/sys/xattr.h" + textual header "/usr/include/xen/evtchn.h" + textual header "/usr/include/xen/gntalloc.h" + textual header "/usr/include/xen/gntdev.h" + textual header "/usr/include/xen/privcmd.h" + textual header "/usr/include/z3++.h" + textual header "/usr/include/z3.h" + textual header "/usr/include/z3_algebraic.h" + textual header "/usr/include/z3_api.h" + textual header "/usr/include/z3_ast_containers.h" + textual header "/usr/include/z3_fixedpoint.h" + textual header "/usr/include/z3_fpa.h" + textual header "/usr/include/z3_macros.h" + textual header "/usr/include/z3_optimization.h" + textual header "/usr/include/z3_polynomial.h" + textual header "/usr/include/z3_rcf.h" + textual header "/usr/include/z3_spacer.h" + textual header "/usr/include/z3_v1.h" + textual header "/usr/include/z3_version.h" + textual header "/usr/include/zconf.h" + textual header "/usr/include/zlib.h" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/share/README.txt" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/share/asan_blacklist.txt" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/share/cfi_blacklist.txt" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/share/dfsan_abilist.txt" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/share/hwasan_blacklist.txt" + textual header "/usr/lib/llvm-10/lib/clang/10.0.0/share/msan_blacklist.txt" + textual header "/usr/include/c++/9/algorithm" + textual header "/usr/include/c++/9/any" + textual header "/usr/include/c++/9/array" + textual header "/usr/include/c++/9/atomic" + textual header "/usr/include/c++/9/backward/auto_ptr.h" + textual header "/usr/include/c++/9/backward/backward_warning.h" + textual header "/usr/include/c++/9/backward/binders.h" + textual header "/usr/include/c++/9/backward/hash_fun.h" + textual header "/usr/include/c++/9/backward/hash_map" + textual header "/usr/include/c++/9/backward/hash_set" + textual header "/usr/include/c++/9/backward/hashtable.h" + textual header "/usr/include/c++/9/backward/strstream" + textual header "/usr/include/c++/9/bit" + textual header "/usr/include/c++/9/bits/algorithmfwd.h" + textual header "/usr/include/c++/9/bits/alloc_traits.h" + textual header "/usr/include/c++/9/bits/allocated_ptr.h" + textual header "/usr/include/c++/9/bits/allocator.h" + textual header "/usr/include/c++/9/bits/atomic_base.h" + textual header "/usr/include/c++/9/bits/atomic_futex.h" + textual header "/usr/include/c++/9/bits/atomic_lockfree_defines.h" + textual header "/usr/include/c++/9/bits/basic_ios.h" + textual header "/usr/include/c++/9/bits/basic_ios.tcc" + textual header "/usr/include/c++/9/bits/basic_string.h" + textual header "/usr/include/c++/9/bits/basic_string.tcc" + textual header "/usr/include/c++/9/bits/boost_concept_check.h" + textual header "/usr/include/c++/9/bits/c++0x_warning.h" + textual header "/usr/include/c++/9/bits/char_traits.h" + textual header "/usr/include/c++/9/bits/codecvt.h" + textual header "/usr/include/c++/9/bits/concept_check.h" + textual header "/usr/include/c++/9/bits/cpp_type_traits.h" + textual header "/usr/include/c++/9/bits/cxxabi_forced.h" + textual header "/usr/include/c++/9/bits/cxxabi_init_exception.h" + textual header "/usr/include/c++/9/bits/deque.tcc" + textual header "/usr/include/c++/9/bits/enable_special_members.h" + textual header "/usr/include/c++/9/bits/erase_if.h" + textual header "/usr/include/c++/9/bits/exception.h" + textual header "/usr/include/c++/9/bits/exception_defines.h" + textual header "/usr/include/c++/9/bits/exception_ptr.h" + textual header "/usr/include/c++/9/bits/forward_list.h" + textual header "/usr/include/c++/9/bits/forward_list.tcc" + textual header "/usr/include/c++/9/bits/fs_dir.h" + textual header "/usr/include/c++/9/bits/fs_fwd.h" + textual header "/usr/include/c++/9/bits/fs_ops.h" + textual header "/usr/include/c++/9/bits/fs_path.h" + textual header "/usr/include/c++/9/bits/fstream.tcc" + textual header "/usr/include/c++/9/bits/functexcept.h" + textual header "/usr/include/c++/9/bits/functional_hash.h" + textual header "/usr/include/c++/9/bits/gslice.h" + textual header "/usr/include/c++/9/bits/gslice_array.h" + textual header "/usr/include/c++/9/bits/hash_bytes.h" + textual header "/usr/include/c++/9/bits/hashtable.h" + textual header "/usr/include/c++/9/bits/hashtable_policy.h" + textual header "/usr/include/c++/9/bits/indirect_array.h" + textual header "/usr/include/c++/9/bits/invoke.h" + textual header "/usr/include/c++/9/bits/ios_base.h" + textual header "/usr/include/c++/9/bits/istream.tcc" + textual header "/usr/include/c++/9/bits/list.tcc" + textual header "/usr/include/c++/9/bits/locale_classes.h" + textual header "/usr/include/c++/9/bits/locale_classes.tcc" + textual header "/usr/include/c++/9/bits/locale_conv.h" + textual header "/usr/include/c++/9/bits/locale_facets.h" + textual header "/usr/include/c++/9/bits/locale_facets.tcc" + textual header "/usr/include/c++/9/bits/locale_facets_nonio.h" + textual header "/usr/include/c++/9/bits/locale_facets_nonio.tcc" + textual header "/usr/include/c++/9/bits/localefwd.h" + textual header "/usr/include/c++/9/bits/mask_array.h" + textual header "/usr/include/c++/9/bits/memoryfwd.h" + textual header "/usr/include/c++/9/bits/move.h" + textual header "/usr/include/c++/9/bits/nested_exception.h" + textual header "/usr/include/c++/9/bits/node_handle.h" + textual header "/usr/include/c++/9/bits/ostream.tcc" + textual header "/usr/include/c++/9/bits/ostream_insert.h" + textual header "/usr/include/c++/9/bits/parse_numbers.h" + textual header "/usr/include/c++/9/bits/postypes.h" + textual header "/usr/include/c++/9/bits/predefined_ops.h" + textual header "/usr/include/c++/9/bits/ptr_traits.h" + textual header "/usr/include/c++/9/bits/quoted_string.h" + textual header "/usr/include/c++/9/bits/random.h" + textual header "/usr/include/c++/9/bits/random.tcc" + textual header "/usr/include/c++/9/bits/range_access.h" + textual header "/usr/include/c++/9/bits/refwrap.h" + textual header "/usr/include/c++/9/bits/regex.h" + textual header "/usr/include/c++/9/bits/regex.tcc" + textual header "/usr/include/c++/9/bits/regex_automaton.h" + textual header "/usr/include/c++/9/bits/regex_automaton.tcc" + textual header "/usr/include/c++/9/bits/regex_compiler.h" + textual header "/usr/include/c++/9/bits/regex_compiler.tcc" + textual header "/usr/include/c++/9/bits/regex_constants.h" + textual header "/usr/include/c++/9/bits/regex_error.h" + textual header "/usr/include/c++/9/bits/regex_executor.h" + textual header "/usr/include/c++/9/bits/regex_executor.tcc" + textual header "/usr/include/c++/9/bits/regex_scanner.h" + textual header "/usr/include/c++/9/bits/regex_scanner.tcc" + textual header "/usr/include/c++/9/bits/shared_ptr.h" + textual header "/usr/include/c++/9/bits/shared_ptr_atomic.h" + textual header "/usr/include/c++/9/bits/shared_ptr_base.h" + textual header "/usr/include/c++/9/bits/slice_array.h" + textual header "/usr/include/c++/9/bits/specfun.h" + textual header "/usr/include/c++/9/bits/sstream.tcc" + textual header "/usr/include/c++/9/bits/std_abs.h" + textual header "/usr/include/c++/9/bits/std_function.h" + textual header "/usr/include/c++/9/bits/std_mutex.h" + textual header "/usr/include/c++/9/bits/stl_algo.h" + textual header "/usr/include/c++/9/bits/stl_algobase.h" + textual header "/usr/include/c++/9/bits/stl_bvector.h" + textual header "/usr/include/c++/9/bits/stl_construct.h" + textual header "/usr/include/c++/9/bits/stl_deque.h" + textual header "/usr/include/c++/9/bits/stl_function.h" + textual header "/usr/include/c++/9/bits/stl_heap.h" + textual header "/usr/include/c++/9/bits/stl_iterator.h" + textual header "/usr/include/c++/9/bits/stl_iterator_base_funcs.h" + textual header "/usr/include/c++/9/bits/stl_iterator_base_types.h" + textual header "/usr/include/c++/9/bits/stl_list.h" + textual header "/usr/include/c++/9/bits/stl_map.h" + textual header "/usr/include/c++/9/bits/stl_multimap.h" + textual header "/usr/include/c++/9/bits/stl_multiset.h" + textual header "/usr/include/c++/9/bits/stl_numeric.h" + textual header "/usr/include/c++/9/bits/stl_pair.h" + textual header "/usr/include/c++/9/bits/stl_queue.h" + textual header "/usr/include/c++/9/bits/stl_raw_storage_iter.h" + textual header "/usr/include/c++/9/bits/stl_relops.h" + textual header "/usr/include/c++/9/bits/stl_set.h" + textual header "/usr/include/c++/9/bits/stl_stack.h" + textual header "/usr/include/c++/9/bits/stl_tempbuf.h" + textual header "/usr/include/c++/9/bits/stl_tree.h" + textual header "/usr/include/c++/9/bits/stl_uninitialized.h" + textual header "/usr/include/c++/9/bits/stl_vector.h" + textual header "/usr/include/c++/9/bits/stream_iterator.h" + textual header "/usr/include/c++/9/bits/streambuf.tcc" + textual header "/usr/include/c++/9/bits/streambuf_iterator.h" + textual header "/usr/include/c++/9/bits/string_view.tcc" + textual header "/usr/include/c++/9/bits/stringfwd.h" + textual header "/usr/include/c++/9/bits/uniform_int_dist.h" + textual header "/usr/include/c++/9/bits/unique_lock.h" + textual header "/usr/include/c++/9/bits/unique_ptr.h" + textual header "/usr/include/c++/9/bits/unordered_map.h" + textual header "/usr/include/c++/9/bits/unordered_set.h" + textual header "/usr/include/c++/9/bits/uses_allocator.h" + textual header "/usr/include/c++/9/bits/valarray_after.h" + textual header "/usr/include/c++/9/bits/valarray_array.h" + textual header "/usr/include/c++/9/bits/valarray_array.tcc" + textual header "/usr/include/c++/9/bits/valarray_before.h" + textual header "/usr/include/c++/9/bits/vector.tcc" + textual header "/usr/include/c++/9/bitset" + textual header "/usr/include/c++/9/cassert" + textual header "/usr/include/c++/9/ccomplex" + textual header "/usr/include/c++/9/cctype" + textual header "/usr/include/c++/9/cerrno" + textual header "/usr/include/c++/9/cfenv" + textual header "/usr/include/c++/9/cfloat" + textual header "/usr/include/c++/9/charconv" + textual header "/usr/include/c++/9/chrono" + textual header "/usr/include/c++/9/cinttypes" + textual header "/usr/include/c++/9/ciso646" + textual header "/usr/include/c++/9/climits" + textual header "/usr/include/c++/9/clocale" + textual header "/usr/include/c++/9/cmath" + textual header "/usr/include/c++/9/codecvt" + textual header "/usr/include/c++/9/complex" + textual header "/usr/include/c++/9/complex.h" + textual header "/usr/include/c++/9/condition_variable" + textual header "/usr/include/c++/9/csetjmp" + textual header "/usr/include/c++/9/csignal" + textual header "/usr/include/c++/9/cstdalign" + textual header "/usr/include/c++/9/cstdarg" + textual header "/usr/include/c++/9/cstdbool" + textual header "/usr/include/c++/9/cstddef" + textual header "/usr/include/c++/9/cstdint" + textual header "/usr/include/c++/9/cstdio" + textual header "/usr/include/c++/9/cstdlib" + textual header "/usr/include/c++/9/cstring" + textual header "/usr/include/c++/9/ctgmath" + textual header "/usr/include/c++/9/ctime" + textual header "/usr/include/c++/9/cuchar" + textual header "/usr/include/c++/9/cwchar" + textual header "/usr/include/c++/9/cwctype" + textual header "/usr/include/c++/9/cxxabi.h" + textual header "/usr/include/c++/9/debug/array" + textual header "/usr/include/c++/9/debug/assertions.h" + textual header "/usr/include/c++/9/debug/bitset" + textual header "/usr/include/c++/9/debug/debug.h" + textual header "/usr/include/c++/9/debug/deque" + textual header "/usr/include/c++/9/debug/formatter.h" + textual header "/usr/include/c++/9/debug/forward_list" + textual header "/usr/include/c++/9/debug/functions.h" + textual header "/usr/include/c++/9/debug/helper_functions.h" + textual header "/usr/include/c++/9/debug/list" + textual header "/usr/include/c++/9/debug/macros.h" + textual header "/usr/include/c++/9/debug/map" + textual header "/usr/include/c++/9/debug/map.h" + textual header "/usr/include/c++/9/debug/multimap.h" + textual header "/usr/include/c++/9/debug/multiset.h" + textual header "/usr/include/c++/9/debug/safe_base.h" + textual header "/usr/include/c++/9/debug/safe_container.h" + textual header "/usr/include/c++/9/debug/safe_iterator.h" + textual header "/usr/include/c++/9/debug/safe_iterator.tcc" + textual header "/usr/include/c++/9/debug/safe_local_iterator.h" + textual header "/usr/include/c++/9/debug/safe_local_iterator.tcc" + textual header "/usr/include/c++/9/debug/safe_sequence.h" + textual header "/usr/include/c++/9/debug/safe_sequence.tcc" + textual header "/usr/include/c++/9/debug/safe_unordered_base.h" + textual header "/usr/include/c++/9/debug/safe_unordered_container.h" + textual header "/usr/include/c++/9/debug/safe_unordered_container.tcc" + textual header "/usr/include/c++/9/debug/set" + textual header "/usr/include/c++/9/debug/set.h" + textual header "/usr/include/c++/9/debug/stl_iterator.h" + textual header "/usr/include/c++/9/debug/string" + textual header "/usr/include/c++/9/debug/unordered_map" + textual header "/usr/include/c++/9/debug/unordered_set" + textual header "/usr/include/c++/9/debug/vector" + textual header "/usr/include/c++/9/decimal/decimal" + textual header "/usr/include/c++/9/decimal/decimal.h" + textual header "/usr/include/c++/9/deque" + textual header "/usr/include/c++/9/exception" + textual header "/usr/include/c++/9/execution" + textual header "/usr/include/c++/9/experimental/algorithm" + textual header "/usr/include/c++/9/experimental/any" + textual header "/usr/include/c++/9/experimental/array" + textual header "/usr/include/c++/9/experimental/bits/fs_dir.h" + textual header "/usr/include/c++/9/experimental/bits/fs_fwd.h" + textual header "/usr/include/c++/9/experimental/bits/fs_ops.h" + textual header "/usr/include/c++/9/experimental/bits/fs_path.h" + textual header "/usr/include/c++/9/experimental/bits/lfts_config.h" + textual header "/usr/include/c++/9/experimental/bits/net.h" + textual header "/usr/include/c++/9/experimental/bits/shared_ptr.h" + textual header "/usr/include/c++/9/experimental/bits/string_view.tcc" + textual header "/usr/include/c++/9/experimental/buffer" + textual header "/usr/include/c++/9/experimental/chrono" + textual header "/usr/include/c++/9/experimental/deque" + textual header "/usr/include/c++/9/experimental/executor" + textual header "/usr/include/c++/9/experimental/filesystem" + textual header "/usr/include/c++/9/experimental/forward_list" + textual header "/usr/include/c++/9/experimental/functional" + textual header "/usr/include/c++/9/experimental/internet" + textual header "/usr/include/c++/9/experimental/io_context" + textual header "/usr/include/c++/9/experimental/iterator" + textual header "/usr/include/c++/9/experimental/list" + textual header "/usr/include/c++/9/experimental/map" + textual header "/usr/include/c++/9/experimental/memory" + textual header "/usr/include/c++/9/experimental/memory_resource" + textual header "/usr/include/c++/9/experimental/net" + textual header "/usr/include/c++/9/experimental/netfwd" + textual header "/usr/include/c++/9/experimental/numeric" + textual header "/usr/include/c++/9/experimental/optional" + textual header "/usr/include/c++/9/experimental/propagate_const" + textual header "/usr/include/c++/9/experimental/random" + textual header "/usr/include/c++/9/experimental/ratio" + textual header "/usr/include/c++/9/experimental/regex" + textual header "/usr/include/c++/9/experimental/set" + textual header "/usr/include/c++/9/experimental/socket" + textual header "/usr/include/c++/9/experimental/source_location" + textual header "/usr/include/c++/9/experimental/string" + textual header "/usr/include/c++/9/experimental/string_view" + textual header "/usr/include/c++/9/experimental/system_error" + textual header "/usr/include/c++/9/experimental/timer" + textual header "/usr/include/c++/9/experimental/tuple" + textual header "/usr/include/c++/9/experimental/type_traits" + textual header "/usr/include/c++/9/experimental/unordered_map" + textual header "/usr/include/c++/9/experimental/unordered_set" + textual header "/usr/include/c++/9/experimental/utility" + textual header "/usr/include/c++/9/experimental/vector" + textual header "/usr/include/c++/9/ext/algorithm" + textual header "/usr/include/c++/9/ext/aligned_buffer.h" + textual header "/usr/include/c++/9/ext/alloc_traits.h" + textual header "/usr/include/c++/9/ext/array_allocator.h" + textual header "/usr/include/c++/9/ext/atomicity.h" + textual header "/usr/include/c++/9/ext/bitmap_allocator.h" + textual header "/usr/include/c++/9/ext/cast.h" + textual header "/usr/include/c++/9/ext/cmath" + textual header "/usr/include/c++/9/ext/codecvt_specializations.h" + textual header "/usr/include/c++/9/ext/concurrence.h" + textual header "/usr/include/c++/9/ext/debug_allocator.h" + textual header "/usr/include/c++/9/ext/enc_filebuf.h" + textual header "/usr/include/c++/9/ext/extptr_allocator.h" + textual header "/usr/include/c++/9/ext/functional" + textual header "/usr/include/c++/9/ext/hash_map" + textual header "/usr/include/c++/9/ext/hash_set" + textual header "/usr/include/c++/9/ext/iterator" + textual header "/usr/include/c++/9/ext/malloc_allocator.h" + textual header "/usr/include/c++/9/ext/memory" + textual header "/usr/include/c++/9/ext/mt_allocator.h" + textual header "/usr/include/c++/9/ext/new_allocator.h" + textual header "/usr/include/c++/9/ext/numeric" + textual header "/usr/include/c++/9/ext/numeric_traits.h" + textual header "/usr/include/c++/9/ext/pb_ds/assoc_container.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/bin_search_tree_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/entry_pred.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/resize_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/branch_policy/branch_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/branch_policy/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/cond_dealtor.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/container_base_dispatch.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/debug_map_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/eq_fn/eq_by_less.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/lu_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/ov_tree_map_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/priority_queue_base_dispatch.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/node.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rb_tree_map_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/node.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/splay_tree_/traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/standard_policies.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/tree_trace_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/type_utils.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/types_traits.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/exception.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/hash_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/list_update_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/priority_queue.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/tag_and_trait.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/tree_policy.hpp" + textual header "/usr/include/c++/9/ext/pb_ds/trie_policy.hpp" + textual header "/usr/include/c++/9/ext/pod_char_traits.h" + textual header "/usr/include/c++/9/ext/pointer.h" + textual header "/usr/include/c++/9/ext/pool_allocator.h" + textual header "/usr/include/c++/9/ext/random" + textual header "/usr/include/c++/9/ext/random.tcc" + textual header "/usr/include/c++/9/ext/rb_tree" + textual header "/usr/include/c++/9/ext/rc_string_base.h" + textual header "/usr/include/c++/9/ext/rope" + textual header "/usr/include/c++/9/ext/ropeimpl.h" + textual header "/usr/include/c++/9/ext/slist" + textual header "/usr/include/c++/9/ext/sso_string_base.h" + textual header "/usr/include/c++/9/ext/stdio_filebuf.h" + textual header "/usr/include/c++/9/ext/stdio_sync_filebuf.h" + textual header "/usr/include/c++/9/ext/string_conversions.h" + textual header "/usr/include/c++/9/ext/throw_allocator.h" + textual header "/usr/include/c++/9/ext/type_traits.h" + textual header "/usr/include/c++/9/ext/typelist.h" + textual header "/usr/include/c++/9/ext/vstring.h" + textual header "/usr/include/c++/9/ext/vstring.tcc" + textual header "/usr/include/c++/9/ext/vstring_fwd.h" + textual header "/usr/include/c++/9/ext/vstring_util.h" + textual header "/usr/include/c++/9/fenv.h" + textual header "/usr/include/c++/9/filesystem" + textual header "/usr/include/c++/9/forward_list" + textual header "/usr/include/c++/9/fstream" + textual header "/usr/include/c++/9/functional" + textual header "/usr/include/c++/9/future" + textual header "/usr/include/c++/9/initializer_list" + textual header "/usr/include/c++/9/iomanip" + textual header "/usr/include/c++/9/ios" + textual header "/usr/include/c++/9/iosfwd" + textual header "/usr/include/c++/9/iostream" + textual header "/usr/include/c++/9/istream" + textual header "/usr/include/c++/9/iterator" + textual header "/usr/include/c++/9/limits" + textual header "/usr/include/c++/9/list" + textual header "/usr/include/c++/9/locale" + textual header "/usr/include/c++/9/map" + textual header "/usr/include/c++/9/math.h" + textual header "/usr/include/c++/9/memory" + textual header "/usr/include/c++/9/memory_resource" + textual header "/usr/include/c++/9/mutex" + textual header "/usr/include/c++/9/new" + textual header "/usr/include/c++/9/numeric" + textual header "/usr/include/c++/9/optional" + textual header "/usr/include/c++/9/ostream" + textual header "/usr/include/c++/9/parallel/algo.h" + textual header "/usr/include/c++/9/parallel/algobase.h" + textual header "/usr/include/c++/9/parallel/algorithm" + textual header "/usr/include/c++/9/parallel/algorithmfwd.h" + textual header "/usr/include/c++/9/parallel/balanced_quicksort.h" + textual header "/usr/include/c++/9/parallel/base.h" + textual header "/usr/include/c++/9/parallel/basic_iterator.h" + textual header "/usr/include/c++/9/parallel/checkers.h" + textual header "/usr/include/c++/9/parallel/compatibility.h" + textual header "/usr/include/c++/9/parallel/compiletime_settings.h" + textual header "/usr/include/c++/9/parallel/equally_split.h" + textual header "/usr/include/c++/9/parallel/features.h" + textual header "/usr/include/c++/9/parallel/find.h" + textual header "/usr/include/c++/9/parallel/find_selectors.h" + textual header "/usr/include/c++/9/parallel/for_each.h" + textual header "/usr/include/c++/9/parallel/for_each_selectors.h" + textual header "/usr/include/c++/9/parallel/iterator.h" + textual header "/usr/include/c++/9/parallel/list_partition.h" + textual header "/usr/include/c++/9/parallel/losertree.h" + textual header "/usr/include/c++/9/parallel/merge.h" + textual header "/usr/include/c++/9/parallel/multiseq_selection.h" + textual header "/usr/include/c++/9/parallel/multiway_merge.h" + textual header "/usr/include/c++/9/parallel/multiway_mergesort.h" + textual header "/usr/include/c++/9/parallel/numeric" + textual header "/usr/include/c++/9/parallel/numericfwd.h" + textual header "/usr/include/c++/9/parallel/omp_loop.h" + textual header "/usr/include/c++/9/parallel/omp_loop_static.h" + textual header "/usr/include/c++/9/parallel/par_loop.h" + textual header "/usr/include/c++/9/parallel/parallel.h" + textual header "/usr/include/c++/9/parallel/partial_sum.h" + textual header "/usr/include/c++/9/parallel/partition.h" + textual header "/usr/include/c++/9/parallel/queue.h" + textual header "/usr/include/c++/9/parallel/quicksort.h" + textual header "/usr/include/c++/9/parallel/random_number.h" + textual header "/usr/include/c++/9/parallel/random_shuffle.h" + textual header "/usr/include/c++/9/parallel/search.h" + textual header "/usr/include/c++/9/parallel/set_operations.h" + textual header "/usr/include/c++/9/parallel/settings.h" + textual header "/usr/include/c++/9/parallel/sort.h" + textual header "/usr/include/c++/9/parallel/tags.h" + textual header "/usr/include/c++/9/parallel/types.h" + textual header "/usr/include/c++/9/parallel/unique_copy.h" + textual header "/usr/include/c++/9/parallel/workstealing.h" + textual header "/usr/include/c++/9/profile/array" + textual header "/usr/include/c++/9/profile/base.h" + textual header "/usr/include/c++/9/profile/bitset" + textual header "/usr/include/c++/9/profile/deque" + textual header "/usr/include/c++/9/profile/forward_list" + textual header "/usr/include/c++/9/profile/impl/profiler.h" + textual header "/usr/include/c++/9/profile/impl/profiler_algos.h" + textual header "/usr/include/c++/9/profile/impl/profiler_container_size.h" + textual header "/usr/include/c++/9/profile/impl/profiler_hash_func.h" + textual header "/usr/include/c++/9/profile/impl/profiler_hashtable_size.h" + textual header "/usr/include/c++/9/profile/impl/profiler_list_to_slist.h" + textual header "/usr/include/c++/9/profile/impl/profiler_list_to_vector.h" + textual header "/usr/include/c++/9/profile/impl/profiler_map_to_unordered_map.h" + textual header "/usr/include/c++/9/profile/impl/profiler_node.h" + textual header "/usr/include/c++/9/profile/impl/profiler_state.h" + textual header "/usr/include/c++/9/profile/impl/profiler_trace.h" + textual header "/usr/include/c++/9/profile/impl/profiler_vector_size.h" + textual header "/usr/include/c++/9/profile/impl/profiler_vector_to_list.h" + textual header "/usr/include/c++/9/profile/iterator_tracker.h" + textual header "/usr/include/c++/9/profile/list" + textual header "/usr/include/c++/9/profile/map" + textual header "/usr/include/c++/9/profile/map.h" + textual header "/usr/include/c++/9/profile/multimap.h" + textual header "/usr/include/c++/9/profile/multiset.h" + textual header "/usr/include/c++/9/profile/ordered_base.h" + textual header "/usr/include/c++/9/profile/set" + textual header "/usr/include/c++/9/profile/set.h" + textual header "/usr/include/c++/9/profile/unordered_base.h" + textual header "/usr/include/c++/9/profile/unordered_map" + textual header "/usr/include/c++/9/profile/unordered_set" + textual header "/usr/include/c++/9/profile/vector" + textual header "/usr/include/c++/9/pstl/algorithm_fwd.h" + textual header "/usr/include/c++/9/pstl/algorithm_impl.h" + textual header "/usr/include/c++/9/pstl/execution_defs.h" + textual header "/usr/include/c++/9/pstl/execution_impl.h" + textual header "/usr/include/c++/9/pstl/glue_algorithm_defs.h" + textual header "/usr/include/c++/9/pstl/glue_algorithm_impl.h" + textual header "/usr/include/c++/9/pstl/glue_execution_defs.h" + textual header "/usr/include/c++/9/pstl/glue_memory_defs.h" + textual header "/usr/include/c++/9/pstl/glue_memory_impl.h" + textual header "/usr/include/c++/9/pstl/glue_numeric_defs.h" + textual header "/usr/include/c++/9/pstl/glue_numeric_impl.h" + textual header "/usr/include/c++/9/pstl/memory_impl.h" + textual header "/usr/include/c++/9/pstl/numeric_fwd.h" + textual header "/usr/include/c++/9/pstl/numeric_impl.h" + textual header "/usr/include/c++/9/pstl/parallel_backend.h" + textual header "/usr/include/c++/9/pstl/parallel_backend_tbb.h" + textual header "/usr/include/c++/9/pstl/parallel_backend_utils.h" + textual header "/usr/include/c++/9/pstl/parallel_impl.h" + textual header "/usr/include/c++/9/pstl/pstl_config.h" + textual header "/usr/include/c++/9/pstl/unseq_backend_simd.h" + textual header "/usr/include/c++/9/pstl/utils.h" + textual header "/usr/include/c++/9/queue" + textual header "/usr/include/c++/9/random" + textual header "/usr/include/c++/9/ratio" + textual header "/usr/include/c++/9/regex" + textual header "/usr/include/c++/9/scoped_allocator" + textual header "/usr/include/c++/9/set" + textual header "/usr/include/c++/9/shared_mutex" + textual header "/usr/include/c++/9/sstream" + textual header "/usr/include/c++/9/stack" + textual header "/usr/include/c++/9/stdexcept" + textual header "/usr/include/c++/9/stdlib.h" + textual header "/usr/include/c++/9/streambuf" + textual header "/usr/include/c++/9/string" + textual header "/usr/include/c++/9/string_view" + textual header "/usr/include/c++/9/system_error" + textual header "/usr/include/c++/9/tgmath.h" + textual header "/usr/include/c++/9/thread" + textual header "/usr/include/c++/9/tr1/array" + textual header "/usr/include/c++/9/tr1/bessel_function.tcc" + textual header "/usr/include/c++/9/tr1/beta_function.tcc" + textual header "/usr/include/c++/9/tr1/ccomplex" + textual header "/usr/include/c++/9/tr1/cctype" + textual header "/usr/include/c++/9/tr1/cfenv" + textual header "/usr/include/c++/9/tr1/cfloat" + textual header "/usr/include/c++/9/tr1/cinttypes" + textual header "/usr/include/c++/9/tr1/climits" + textual header "/usr/include/c++/9/tr1/cmath" + textual header "/usr/include/c++/9/tr1/complex" + textual header "/usr/include/c++/9/tr1/complex.h" + textual header "/usr/include/c++/9/tr1/cstdarg" + textual header "/usr/include/c++/9/tr1/cstdbool" + textual header "/usr/include/c++/9/tr1/cstdint" + textual header "/usr/include/c++/9/tr1/cstdio" + textual header "/usr/include/c++/9/tr1/cstdlib" + textual header "/usr/include/c++/9/tr1/ctgmath" + textual header "/usr/include/c++/9/tr1/ctime" + textual header "/usr/include/c++/9/tr1/ctype.h" + textual header "/usr/include/c++/9/tr1/cwchar" + textual header "/usr/include/c++/9/tr1/cwctype" + textual header "/usr/include/c++/9/tr1/ell_integral.tcc" + textual header "/usr/include/c++/9/tr1/exp_integral.tcc" + textual header "/usr/include/c++/9/tr1/fenv.h" + textual header "/usr/include/c++/9/tr1/float.h" + textual header "/usr/include/c++/9/tr1/functional" + textual header "/usr/include/c++/9/tr1/functional_hash.h" + textual header "/usr/include/c++/9/tr1/gamma.tcc" + textual header "/usr/include/c++/9/tr1/hashtable.h" + textual header "/usr/include/c++/9/tr1/hashtable_policy.h" + textual header "/usr/include/c++/9/tr1/hypergeometric.tcc" + textual header "/usr/include/c++/9/tr1/inttypes.h" + textual header "/usr/include/c++/9/tr1/legendre_function.tcc" + textual header "/usr/include/c++/9/tr1/limits.h" + textual header "/usr/include/c++/9/tr1/math.h" + textual header "/usr/include/c++/9/tr1/memory" + textual header "/usr/include/c++/9/tr1/modified_bessel_func.tcc" + textual header "/usr/include/c++/9/tr1/poly_hermite.tcc" + textual header "/usr/include/c++/9/tr1/poly_laguerre.tcc" + textual header "/usr/include/c++/9/tr1/random" + textual header "/usr/include/c++/9/tr1/random.h" + textual header "/usr/include/c++/9/tr1/random.tcc" + textual header "/usr/include/c++/9/tr1/regex" + textual header "/usr/include/c++/9/tr1/riemann_zeta.tcc" + textual header "/usr/include/c++/9/tr1/shared_ptr.h" + textual header "/usr/include/c++/9/tr1/special_function_util.h" + textual header "/usr/include/c++/9/tr1/stdarg.h" + textual header "/usr/include/c++/9/tr1/stdbool.h" + textual header "/usr/include/c++/9/tr1/stdint.h" + textual header "/usr/include/c++/9/tr1/stdio.h" + textual header "/usr/include/c++/9/tr1/stdlib.h" + textual header "/usr/include/c++/9/tr1/tgmath.h" + textual header "/usr/include/c++/9/tr1/tuple" + textual header "/usr/include/c++/9/tr1/type_traits" + textual header "/usr/include/c++/9/tr1/unordered_map" + textual header "/usr/include/c++/9/tr1/unordered_map.h" + textual header "/usr/include/c++/9/tr1/unordered_set" + textual header "/usr/include/c++/9/tr1/unordered_set.h" + textual header "/usr/include/c++/9/tr1/utility" + textual header "/usr/include/c++/9/tr1/wchar.h" + textual header "/usr/include/c++/9/tr1/wctype.h" + textual header "/usr/include/c++/9/tr2/bool_set" + textual header "/usr/include/c++/9/tr2/bool_set.tcc" + textual header "/usr/include/c++/9/tr2/dynamic_bitset" + textual header "/usr/include/c++/9/tr2/dynamic_bitset.tcc" + textual header "/usr/include/c++/9/tr2/ratio" + textual header "/usr/include/c++/9/tr2/type_traits" + textual header "/usr/include/c++/9/tuple" + textual header "/usr/include/c++/9/type_traits" + textual header "/usr/include/c++/9/typeindex" + textual header "/usr/include/c++/9/typeinfo" + textual header "/usr/include/c++/9/unordered_map" + textual header "/usr/include/c++/9/unordered_set" + textual header "/usr/include/c++/9/utility" + textual header "/usr/include/c++/9/valarray" + textual header "/usr/include/c++/9/variant" + textual header "/usr/include/c++/9/vector" + textual header "/usr/include/c++/9/version" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/basic_file.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++io.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/cxxabi_tweaks.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/extc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-posix.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr-single.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/stdtr1c++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/9/ext/opt_random.h" + textual header "/usr/include/c++/9/backward/auto_ptr.h" + textual header "/usr/include/c++/9/backward/backward_warning.h" + textual header "/usr/include/c++/9/backward/binders.h" + textual header "/usr/include/c++/9/backward/hash_fun.h" + textual header "/usr/include/c++/9/backward/hash_map" + textual header "/usr/include/c++/9/backward/hash_set" + textual header "/usr/include/c++/9/backward/hashtable.h" + textual header "/usr/include/c++/9/backward/strstream" + textual header "/usr/lib/llvm-10/include/c++/v1/__bit_reference" + textual header "/usr/lib/llvm-10/include/c++/v1/__bsd_locale_defaults.h" + textual header "/usr/lib/llvm-10/include/c++/v1/__bsd_locale_fallbacks.h" + textual header "/usr/lib/llvm-10/include/c++/v1/__config" + textual header "/usr/lib/llvm-10/include/c++/v1/__cxxabi_config.h" + textual header "/usr/lib/llvm-10/include/c++/v1/__debug" + textual header "/usr/lib/llvm-10/include/c++/v1/__errc" + textual header "/usr/lib/llvm-10/include/c++/v1/__functional_03" + textual header "/usr/lib/llvm-10/include/c++/v1/__functional_base" + textual header "/usr/lib/llvm-10/include/c++/v1/__functional_base_03" + textual header "/usr/lib/llvm-10/include/c++/v1/__hash_table" + textual header "/usr/lib/llvm-10/include/c++/v1/__libcpp_version" + textual header "/usr/lib/llvm-10/include/c++/v1/__locale" + textual header "/usr/lib/llvm-10/include/c++/v1/__mutex_base" + textual header "/usr/lib/llvm-10/include/c++/v1/__node_handle" + textual header "/usr/lib/llvm-10/include/c++/v1/__nullptr" + textual header "/usr/lib/llvm-10/include/c++/v1/__split_buffer" + textual header "/usr/lib/llvm-10/include/c++/v1/__sso_allocator" + textual header "/usr/lib/llvm-10/include/c++/v1/__std_stream" + textual header "/usr/lib/llvm-10/include/c++/v1/__string" + textual header "/usr/lib/llvm-10/include/c++/v1/__threading_support" + textual header "/usr/lib/llvm-10/include/c++/v1/__tree" + textual header "/usr/lib/llvm-10/include/c++/v1/__tuple" + textual header "/usr/lib/llvm-10/include/c++/v1/__undef_macros" + textual header "/usr/lib/llvm-10/include/c++/v1/algorithm" + textual header "/usr/lib/llvm-10/include/c++/v1/any" + textual header "/usr/lib/llvm-10/include/c++/v1/array" + textual header "/usr/lib/llvm-10/include/c++/v1/atomic" + textual header "/usr/lib/llvm-10/include/c++/v1/bit" + textual header "/usr/lib/llvm-10/include/c++/v1/bitset" + textual header "/usr/lib/llvm-10/include/c++/v1/cassert" + textual header "/usr/lib/llvm-10/include/c++/v1/ccomplex" + textual header "/usr/lib/llvm-10/include/c++/v1/cctype" + textual header "/usr/lib/llvm-10/include/c++/v1/cerrno" + textual header "/usr/lib/llvm-10/include/c++/v1/cfenv" + textual header "/usr/lib/llvm-10/include/c++/v1/cfloat" + textual header "/usr/lib/llvm-10/include/c++/v1/charconv" + textual header "/usr/lib/llvm-10/include/c++/v1/chrono" + textual header "/usr/lib/llvm-10/include/c++/v1/cinttypes" + textual header "/usr/lib/llvm-10/include/c++/v1/ciso646" + textual header "/usr/lib/llvm-10/include/c++/v1/climits" + textual header "/usr/lib/llvm-10/include/c++/v1/clocale" + textual header "/usr/lib/llvm-10/include/c++/v1/cmath" + textual header "/usr/lib/llvm-10/include/c++/v1/codecvt" + textual header "/usr/lib/llvm-10/include/c++/v1/compare" + textual header "/usr/lib/llvm-10/include/c++/v1/complex" + textual header "/usr/lib/llvm-10/include/c++/v1/complex.h" + textual header "/usr/lib/llvm-10/include/c++/v1/condition_variable" + textual header "/usr/lib/llvm-10/include/c++/v1/csetjmp" + textual header "/usr/lib/llvm-10/include/c++/v1/csignal" + textual header "/usr/lib/llvm-10/include/c++/v1/cstdarg" + textual header "/usr/lib/llvm-10/include/c++/v1/cstdbool" + textual header "/usr/lib/llvm-10/include/c++/v1/cstddef" + textual header "/usr/lib/llvm-10/include/c++/v1/cstdint" + textual header "/usr/lib/llvm-10/include/c++/v1/cstdio" + textual header "/usr/lib/llvm-10/include/c++/v1/cstdlib" + textual header "/usr/lib/llvm-10/include/c++/v1/cstring" + textual header "/usr/lib/llvm-10/include/c++/v1/ctgmath" + textual header "/usr/lib/llvm-10/include/c++/v1/ctime" + textual header "/usr/lib/llvm-10/include/c++/v1/ctype.h" + textual header "/usr/lib/llvm-10/include/c++/v1/cwchar" + textual header "/usr/lib/llvm-10/include/c++/v1/cwctype" + textual header "/usr/lib/llvm-10/include/c++/v1/cxxabi.h" + textual header "/usr/lib/llvm-10/include/c++/v1/deque" + textual header "/usr/lib/llvm-10/include/c++/v1/errno.h" + textual header "/usr/lib/llvm-10/include/c++/v1/exception" + textual header "/usr/lib/llvm-10/include/c++/v1/execution" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/__config" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/__memory" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/algorithm" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/coroutine" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/deque" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/filesystem" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/forward_list" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/functional" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/iterator" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/list" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/map" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/memory_resource" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/propagate_const" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/regex" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/set" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/simd" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/string" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/type_traits" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/unordered_map" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/unordered_set" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/utility" + textual header "/usr/lib/llvm-10/include/c++/v1/experimental/vector" + textual header "/usr/lib/llvm-10/include/c++/v1/ext/__hash" + textual header "/usr/lib/llvm-10/include/c++/v1/ext/hash_map" + textual header "/usr/lib/llvm-10/include/c++/v1/ext/hash_set" + textual header "/usr/lib/llvm-10/include/c++/v1/fenv.h" + textual header "/usr/lib/llvm-10/include/c++/v1/filesystem" + textual header "/usr/lib/llvm-10/include/c++/v1/float.h" + textual header "/usr/lib/llvm-10/include/c++/v1/forward_list" + textual header "/usr/lib/llvm-10/include/c++/v1/fstream" + textual header "/usr/lib/llvm-10/include/c++/v1/functional" + textual header "/usr/lib/llvm-10/include/c++/v1/future" + textual header "/usr/lib/llvm-10/include/c++/v1/initializer_list" + textual header "/usr/lib/llvm-10/include/c++/v1/inttypes.h" + textual header "/usr/lib/llvm-10/include/c++/v1/iomanip" + textual header "/usr/lib/llvm-10/include/c++/v1/ios" + textual header "/usr/lib/llvm-10/include/c++/v1/iosfwd" + textual header "/usr/lib/llvm-10/include/c++/v1/iostream" + textual header "/usr/lib/llvm-10/include/c++/v1/istream" + textual header "/usr/lib/llvm-10/include/c++/v1/iterator" + textual header "/usr/lib/llvm-10/include/c++/v1/limits" + textual header "/usr/lib/llvm-10/include/c++/v1/limits.h" + textual header "/usr/lib/llvm-10/include/c++/v1/list" + textual header "/usr/lib/llvm-10/include/c++/v1/locale" + textual header "/usr/lib/llvm-10/include/c++/v1/locale.h" + textual header "/usr/lib/llvm-10/include/c++/v1/map" + textual header "/usr/lib/llvm-10/include/c++/v1/math.h" + textual header "/usr/lib/llvm-10/include/c++/v1/memory" + textual header "/usr/lib/llvm-10/include/c++/v1/module.modulemap" + textual header "/usr/lib/llvm-10/include/c++/v1/mutex" + textual header "/usr/lib/llvm-10/include/c++/v1/new" + textual header "/usr/lib/llvm-10/include/c++/v1/numeric" + textual header "/usr/lib/llvm-10/include/c++/v1/optional" + textual header "/usr/lib/llvm-10/include/c++/v1/ostream" + textual header "/usr/lib/llvm-10/include/c++/v1/queue" + textual header "/usr/lib/llvm-10/include/c++/v1/random" + textual header "/usr/lib/llvm-10/include/c++/v1/ratio" + textual header "/usr/lib/llvm-10/include/c++/v1/regex" + textual header "/usr/lib/llvm-10/include/c++/v1/scoped_allocator" + textual header "/usr/lib/llvm-10/include/c++/v1/set" + textual header "/usr/lib/llvm-10/include/c++/v1/setjmp.h" + textual header "/usr/lib/llvm-10/include/c++/v1/shared_mutex" + textual header "/usr/lib/llvm-10/include/c++/v1/span" + textual header "/usr/lib/llvm-10/include/c++/v1/sstream" + textual header "/usr/lib/llvm-10/include/c++/v1/stack" + textual header "/usr/lib/llvm-10/include/c++/v1/stdbool.h" + textual header "/usr/lib/llvm-10/include/c++/v1/stddef.h" + textual header "/usr/lib/llvm-10/include/c++/v1/stdexcept" + textual header "/usr/lib/llvm-10/include/c++/v1/stdint.h" + textual header "/usr/lib/llvm-10/include/c++/v1/stdio.h" + textual header "/usr/lib/llvm-10/include/c++/v1/stdlib.h" + textual header "/usr/lib/llvm-10/include/c++/v1/streambuf" + textual header "/usr/lib/llvm-10/include/c++/v1/string" + textual header "/usr/lib/llvm-10/include/c++/v1/string.h" + textual header "/usr/lib/llvm-10/include/c++/v1/string_view" + textual header "/usr/lib/llvm-10/include/c++/v1/strstream" + textual header "/usr/lib/llvm-10/include/c++/v1/support/android/locale_bionic.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/fuchsia/xlocale.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/ibm/limits.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/ibm/locale_mgmt_aix.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/ibm/support.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/ibm/xlocale.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/musl/xlocale.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/newlib/xlocale.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/solaris/floatingpoint.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/solaris/wchar.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/solaris/xlocale.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/win32/limits_msvc_win32.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/win32/locale_win32.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/xlocale/__nop_locale_mgmt.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/xlocale/__posix_l_fallback.h" + textual header "/usr/lib/llvm-10/include/c++/v1/support/xlocale/__strtonum_fallback.h" + textual header "/usr/lib/llvm-10/include/c++/v1/system_error" + textual header "/usr/lib/llvm-10/include/c++/v1/tgmath.h" + textual header "/usr/lib/llvm-10/include/c++/v1/thread" + textual header "/usr/lib/llvm-10/include/c++/v1/tuple" + textual header "/usr/lib/llvm-10/include/c++/v1/type_traits" + textual header "/usr/lib/llvm-10/include/c++/v1/typeindex" + textual header "/usr/lib/llvm-10/include/c++/v1/typeinfo" + textual header "/usr/lib/llvm-10/include/c++/v1/unordered_map" + textual header "/usr/lib/llvm-10/include/c++/v1/unordered_set" + textual header "/usr/lib/llvm-10/include/c++/v1/utility" + textual header "/usr/lib/llvm-10/include/c++/v1/valarray" + textual header "/usr/lib/llvm-10/include/c++/v1/variant" + textual header "/usr/lib/llvm-10/include/c++/v1/vector" + textual header "/usr/lib/llvm-10/include/c++/v1/version" + textual header "/usr/lib/llvm-10/include/c++/v1/wchar.h" + textual header "/usr/lib/llvm-10/include/c++/v1/wctype.h" +} \ No newline at end of file diff --git a/platform/macos_arm64/BUILD b/platform/macos_arm64/BUILD new file mode 100644 index 00000000..10e1237b --- /dev/null +++ b/platform/macos_arm64/BUILD @@ -0,0 +1,52 @@ +load("@apple_support//xcode:available_xcodes.bzl", "available_xcodes") +load("@apple_support//xcode:xcode_config.bzl", "xcode_config") +load("@apple_support//xcode:xcode_version.bzl", "xcode_version") + +package(default_visibility = ["//visibility:public"]) + +# The platform definition for a remote mac worker. +platform( + name = "macos_arm64", + constraint_values = [ + "@platforms//os:macos", + "@platforms//cpu:arm64", + ], + exec_properties = { + "Pool": "macos_arm_m2", + "test.sandboxAllowed": "False", # ios tests need to escape the sandbox in order to correctly reach the simulator service. + }, +) + +# The XCode installed on the remote worker. +xcode_version( + name = "version26_5_0_17F42", + aliases = [ + "26.5.0", + "26.5", + "17F42", + "26.5.0.17F42", + "26", + ], + default_ios_sdk_version = "26.5", + default_macos_sdk_version = "26.5", + default_tvos_sdk_version = "26.5", + default_visionos_sdk_version = "26.5", + default_watchos_sdk_version = "26.5", + version = "26.5.0.17F42", +) + +xcode_config( + name = "installed_xcodes", + default = ":version26_5_0_17F42", + versions = [ + ":version26_5_0_17F42", + ], +) + +available_xcodes( + name = "available_xcodes", + default = ":version26_5_0_17F42", + versions = [ + ":version26_5_0_17F42", + ], +) diff --git a/platform/windows_x64/BUILD b/platform/windows_x64/BUILD new file mode 100644 index 00000000..8845d378 --- /dev/null +++ b/platform/windows_x64/BUILD @@ -0,0 +1,107 @@ +load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite") +load(":windows_cc_toolchain_config.bzl", "cc_toolchain_config") + +package(default_visibility = ["//visibility:public"]) + +platform( + name = "windows_x64", + constraint_values = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + "@bazel_tools//tools/cpp:msvc", + ], + exec_properties = { + "container-image": "docker://645088952840.dkr.ecr.eu-west-1.amazonaws.com/engflow-re/windows-x64:engflow_worker@sha256:6a53c6d5cbc82ca0782e9117482e457a676920227b697de5db90ff53e7afedbe", + "Pool": "windows", + }, +) + +toolchain( + name = "cc-toolchain", + exec_compatible_with = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + "@bazel_tools//tools/cpp:msvc", + ], + target_compatible_with = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + "@bazel_tools//tools/cpp:msvc", + ], + toolchain = ":msvc_cc_toolchain", + toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", +) + +cc_toolchain_suite( + name = "toolchain", + target_compatible_with = [ + "@platforms//os:windows", + ], + toolchains = { + "x64_windows|msvc": ":msvc_cc_toolchain", + "x64_windows": ":msvc_cc_toolchain", + }, +) + +cc_toolchain( + name = "msvc_cc_toolchain", + all_files = ":empty", + ar_files = ":empty", + as_files = ":empty", + compiler_files = ":empty", + dwp_files = ":empty", + linker_files = ":empty", + objcopy_files = ":empty", + strip_files = ":empty", + supports_param_files = 1, + toolchain_config = ":msvc_cc_toolchain_config", + toolchain_identifier = "msvc-cl", +) + +cc_toolchain_config( + name = "msvc_cc_toolchain_config", + abi_libc_version = "local", + abi_version = "local", + archiver_flags = ["/MACHINE:X64"], + compiler = "msvc-cl", + cpu = "x64_windows", + cxx_builtin_include_directories = [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\include", + "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt", + "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\shared", + "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\um", + "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\winrt", + "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\cppwinrt", + ], + dbg_mode_debug_flag = "/DEBUG:FULL", + default_link_flags = ["/MACHINE:X64"], + fastbuild_mode_debug_flag = "/DEBUG:FASTLINK", + host_system_name = "local", + msvc_cl_path = "C:/Program Files/engflow/bin/msvc_filter_showincludes.exe", + msvc_env_include = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\include;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\shared;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\um;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\winrt;C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\cppwinrt", + msvc_env_lib = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\lib\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\ucrt\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\um\\x64", + msvc_env_path = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX64\\x64;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\IDE\\VC\\VCPackages;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\MSBuild\\Current\\bin\\Roslyn;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\Tools\\devinit;C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.19041.0\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\bin\\x64;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\\\MSBuild\\Current\\Bin;C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\IDE\\;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\Tools\\;;C:\\Windows\\system32;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\Ninja", + msvc_env_tmp = "C:\\Windows\\TEMP", + msvc_lib_path = "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/lib.exe", + msvc_link_path = "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/link.exe", + msvc_ml_path = "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/ml64.exe", + target_libc = "msvcrt", + target_system_name = "local", + tool_paths = { + "ar": "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/lib.exe", + "ml": "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/ml64.exe", + "cpp": "C:/Program Files/engflow/bin/msvc_filter_showincludes.exe", + "gcc": "C:/Program Files/engflow/bin/msvc_filter_showincludes.exe", + "gcov": "wrapper/bin/msvc_nop.bat", + "ld": "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/HostX64/x64/link.exe", + "nm": "wrapper/bin/msvc_nop.bat", + "objcopy": "wrapper/bin/msvc_nop.bat", + "objdump": "wrapper/bin/msvc_nop.bat", + "strip": "wrapper/bin/msvc_nop.bat", + }, + toolchain_identifier = "msvc-cl", +) + +filegroup( + name = "empty", +) diff --git a/platform/windows_x64/docker/Dockerfile b/platform/windows_x64/docker/Dockerfile new file mode 100644 index 00000000..43358bc1 --- /dev/null +++ b/platform/windows_x64/docker/Dockerfile @@ -0,0 +1,30 @@ +FROM mcr.microsoft.com/windows/servercore:ltsc2022 AS download +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + +ENV EF_INSTALL_TEMP_DIR="C:\\engflow_install_temp" +ENV SCRIPT_DEBUG="on" + +COPY "normalize_os_windows.ps1" "C:/normalize_os_windows.ps1" +RUN "C:/normalize_os_windows.ps1" +RUN "Remove-Item C:/normalize_os_windows.ps1" + +COPY "install_vs_build_tools.ps1" "${EF_INSTALL_TEMP_DIR}" +RUN "& \"${env:EF_INSTALL_TEMP_DIR}/install_vs_build_tools.ps1\"" + +COPY "install_msys2.ps1" "${EF_INSTALL_TEMP_DIR}" +RUN "& \"${env:EF_INSTALL_TEMP_DIR}/install_msys2.ps1\"" + +COPY "install_jre.ps1" "${EF_INSTALL_TEMP_DIR}" +RUN "& \"${env:EF_INSTALL_TEMP_DIR}/install_jre.ps1\"" + +COPY "install_python.ps1" "${EF_INSTALL_TEMP_DIR}" +RUN "& \"${env:EF_INSTALL_TEMP_DIR}/install_python.ps1\"" + +COPY ["msvc_filter_showincludes.exe", "C:/Program Files/engflow/bin/msvc_filter_showincludes.exe"] + +RUN "Remove-Item -Recurse ${env:EF_INSTALL_TEMP_DIR}" +ENV EF_INSTALL_TEMP_DIR= + +USER ContainerUser + +CMD ["powershell"] diff --git a/platform/windows_x64/docker/README.md b/platform/windows_x64/docker/README.md new file mode 100644 index 00000000..b0f67198 --- /dev/null +++ b/platform/windows_x64/docker/README.md @@ -0,0 +1,5 @@ +This directory contains a minimal Dockerfile you can use to build a container image to be used with remote execution. + +See https://docs.engflow.com/re/client/create-container.html for a complete explanation on what tools should be installed in a container image, where the image should be stored, and how to configure Bazel to use your image. + +To build this image, run `platform/windows_x64/docker/build.ps1` from the workspace root directory instead of running `docker build` directly. This builds `//infra/msvc_filter_showincludes` using Bazel. That tool is used by the MSVC toolchain to work around [bazelbuild/bazel#19733](https://github.com/bazelbuild/bazel/issues/19733). diff --git a/platform/windows_x64/docker/build.ps1 b/platform/windows_x64/docker/build.ps1 new file mode 100644 index 00000000..15dcb542 --- /dev/null +++ b/platform/windows_x64/docker/build.ps1 @@ -0,0 +1,65 @@ +$ErrorActionPreference = "Stop" +$InformationPreference = "Continue" +if ($env:SCRIPT_DEBUG -ne "") { + $VerbosePreference = "Continue" +} +$global:ProgressPreference = "SilentlyContinue" +Set-StrictMode -Version latest + +# This script builds a Docker container image for EngFlow workers. +# It contains everything needed by remote actions in our repository. +# Nearly all of the logic is in either Dockerfile or a handful of +# scripts it calls that are shared with other image builds. This script +# just puts Dockerfile together with those scripts in a temporary directory, +# then invokes 'docker build'. + +# Verify that this script was run from the repository root. +if (-not (Test-Path "platform/windows_x64/docker/build.ps1" -Type Leaf) -or -not (Test-Path "WORKSPACE" -Type Leaf)) { + Write-Error "Run this script from the repository root directory." +} + +# Create a temporary directory and copy files there. +$repoRootDir = Get-Location +Write-Verbose "repoRootDir $repoRootDir" +$buildDir = "${repoRootDir}/_build" +Write-Verbose "Copying files to ${buildDir}..." +New-Item -Type 'directory' -Path $buildDir +trap { + Set-Location $repoRootDir + Remove-Item -Recurse -Force $buildDir +} +Copy-Item 'platform/windows_x64/docker/normalize_os_windows.ps1' $buildDir +Copy-Item 'platform/windows_x64/docker/install_jre.ps1' $buildDir +Copy-Item 'platform/windows_x64/docker/install_msys2.ps1' $buildDir +Copy-Item 'platform/windows_x64/docker/install_python.ps1' $buildDir +Copy-Item 'platform/windows_x64/docker/install_vs_build_tools.ps1' $buildDir +Copy-Item 'platform/windows_x64/docker/Dockerfile' $buildDir + +# Build the showincludes wrapper binary. +# TODO(CUS-81): Remove this after +# https://github.com/bazelbuild/bazel/issues/19733 is fixed, and we're upgraded +# to a version of Bazel that has the fix. +bazel build //infra/msvc_filter_showincludes +Copy-Item 'bazel-bin/infra/msvc_filter_showincludes/msvc_filter_showincludes_/msvc_filter_showincludes.exe' $buildDir + +# Build the Docker image. +# +# Additional memory is needed to install VS build tools. The default 1GB +# is not enough. +# +# Additional storage space is needed, too: the default 20GB is not enough. +# Configure C:\ProgramData\docker\config\daemon.json with: +# +# "storage-opts": [ +# "size=50G" +# ] +Write-Verbose "Building docker image..." +Set-Location $buildDir +docker build ` + --tag engflow-container-image ` + --memory '4GB' ` + . +Set-Location $repoRootDir + +# Remove the temporary directory on success. +Remove-Item -Recurse -Force $buildDir diff --git a/platform/windows_x64/docker/install_jre.ps1 b/platform/windows_x64/docker/install_jre.ps1 new file mode 100644 index 00000000..8651b385 --- /dev/null +++ b/platform/windows_x64/docker/install_jre.ps1 @@ -0,0 +1,23 @@ +$ErrorActionPreference = "Stop" +$InformationPreference = "Continue" +if ($env:SCRIPT_DEBUG -ne "") { + $VerbosePreference = "Continue" +} +# Don't show download progress because invoke-webrequest is slowed down by that. https://stackoverflow.com/a/43477248 +$global:ProgressPreference = "SilentlyContinue" +Set-StrictMode -Version latest + +# Install JRE. Needed to run the EngFlow worker binary. +Write-Verbose "Installing JRE..." +Invoke-WebRequest ` + -Uri 'https://storage.googleapis.com/engflow-tools-public/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jre17.0.8.1-win_x64.zip' ` + -OutFile "${env:EF_INSTALL_TEMP_DIR}\zulu17.44.53-ca-jre17.0.8.1-win_x64.zip" +Expand-Archive ` + -Path "${env:EF_INSTALL_TEMP_DIR}\zulu17.44.53-ca-jre17.0.8.1-win_x64.zip" ` + -DestinationPath ${env:EF_INSTALL_TEMP_DIR} +Move-Item ` + -Path "${env:EF_INSTALL_TEMP_DIR}\zulu17.44.53-ca-jre17.0.8.1-win_x64" ` + -Destination 'C:\Program Files\Java' +$env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') +$env:PATH = "$env:PATH;C:\Program Files\Java\bin" +[Environment]::SetEnvironmentVariable('PATH', $env:PATH, 'Machine') diff --git a/platform/windows_x64/docker/install_msys2.ps1 b/platform/windows_x64/docker/install_msys2.ps1 new file mode 100644 index 00000000..3fff9ddf --- /dev/null +++ b/platform/windows_x64/docker/install_msys2.ps1 @@ -0,0 +1,85 @@ +$ErrorActionPreference = "Stop" +$InformationPreference = "Continue" +if ($env:SCRIPT_DEBUG -ne "") { + $VerbosePreference = "Continue" +} +# Don't show download progress because invoke-webrequest is slowed down by that. https://stackoverflow.com/a/43477248 +$global:ProgressPreference = "SilentlyContinue" +Set-StrictMode -Version latest + +# This script downloads and installs msys2, along with a number of C/C++ +# toolchains it provides. We need it for: +# - Actions that use bash via ctx.actions.run_shell. +# - Bazel's test wrapper bash script (when run from non-Windows host). +# - genrules (when run from non-Windows host or without cmd_ps). +# - Builds where we want an open source C/C++ toolchain. + +# Download the installer. +# We use the nightly self-extracting installer instead of the regularly released +# graphical installer. +# +# - The graphical installer depends on DLLs that are not in the servercore +# base container image, so it won't start. +# - The official release self-extracting installer seems to trigger a +# Docker / Go bug on Windows: docker hangs after executing the last +# instruction in the Dockerfile. +# https://github.com/microsoft/hcsshim/issues/696 +# +# We don't bother mirroring this installer because the .sfx.exe file at the URL +# changes every couple days. We're about to install the latest version of +# a bunch of packages with pacman anyway, so we've already lost. pacman provides +# little control for installing specific package versions. +Write-Verbose "Download msys2" +Invoke-WebRequest ` + -Uri 'https://github.com/msys2/msys2-installer/releases/download/nightly-x86_64/msys2-base-x86_64-latest.sfx.exe' ` + -OutFile "${env:EF_INSTALL_TEMP_DIR}/msys2-base-x86_64-latest.sfx.exe" + +# Run the installer. It's a self-extracting archive. It extracts to .\msys64. +# -y skip prompts +# -oC:\ write to C:\ instead of working directory +Write-Verbose "Extract msys2" +& "${env:EF_INSTALL_TEMP_DIR}/msys2-base-x86_64-latest.sfx.exe" -y -oC:\ + +# Add msys2 to PATH. +$env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') +$env:PATH = "$env:PATH;C:\msys64\usr\bin" +[Environment]::SetEnvironmentVariable('PATH', $env:PATH, 'Machine') + +# Install C/C++ toolchains. +# See https://www.msys2.org/docs/environments/. +# +# - gcc: Bazel auto-configures this as msys-gcc. +# Installed in C:\msys64\usr\bin. Uses the cygwin C runtime. +# Useful for GNU compatibility and simple configuration. +# - mingw-w64-x86_64-gcc: Bazel auto-configures this as mingw-gcc. +# Installed in C:\msys64\mingw64\usr\bin. Uses the MSVCRT runtime. +# rules_foreign_cc needs this in some cases for GNU compatibility. +# - mingw-w64-ucrt-x86_64-gcc: A GCC toolchain. +# Installed in C:\msys64\ucrt64\usr\bin, uses UCRT64. +# Should be compatible with libraries built with MSVC linked against UCRT64. +# We need to configure our own toolchains for this. +# - mingw-w64-ucrt-x86_64-clang: A clang toolchain. +# Installed in C:\msys64\ucrt64\usr\bin, uses UCRT64. +# Should be compatible with libraries built with MSVC linked against UCRT64. +# We need to configure our own toolchains for this. +# +# NOTE: we invoke pacman via bash. It seems to depend on the environment +# to initialize gnupg correctly and to not trigger the Docker bug +# https://github.com/microsoft/hcsshim/issues/696. +# +# bash -l: run a login shell, evaluting startup files. +# bash -c: run a command. +# +# pacman --sync: install packages, analogous to apt-get. +# pacman --refresh: download latest package metadata. +# pacman --sysupgrade: upgrade installed packages. +# pacman --needed: do not reinstall up-to-date packages. +Write-Verbose "Install msys2 C/C++ toolchains" +bash -l -c "pacman --sync --refresh --sysupgrade --needed --noconfirm --noprogressbar" +bash -l -c "pacman --sync --needed --noconfirm --noprogressbar gcc mingw-w64-x86_64-gcc mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-clang" + +# Clean up temporary files created by pacman. +# This may be needed to avoid triggering the Docker bug +# https://github.com/microsoft/hcsshim/issues/696. +# We don't want these files in the image anyway. +bash -l -c "rm -rf /C/Users/ContainerUser/* /var/cache/pacman/pkg/*" diff --git a/platform/windows_x64/docker/install_python.ps1 b/platform/windows_x64/docker/install_python.ps1 new file mode 100644 index 00000000..deb9f448 --- /dev/null +++ b/platform/windows_x64/docker/install_python.ps1 @@ -0,0 +1,29 @@ +$ErrorActionPreference = "Stop" +$InformationPreference = "Continue" +if ($env:SCRIPT_DEBUG -ne "") { + $VerbosePreference = "Continue" +} +# Don't show download progress because invoke-webrequest is slowed down by that. https://stackoverflow.com/a/43477248 +$global:ProgressPreference = "SilentlyContinue" +Set-StrictMode -Version latest + +# Install Python, needed to run py_test. +# Watch https://www.python.org/downloads/windows/ for new releases. +# Installer command line reference: https://docs.python.org/3.11/using/windows.html +Write-Verbose "Installing Python..." +Invoke-WebRequest ` + -Uri "https://storage.googleapis.com/engflow-tools-public/python-3.11.4-amd64.exe" ` + -OutFile "${env:EF_INSTALL_TEMP_DIR}\python-3.11.4-amd64.exe" + +$process = Start-Process ` + "${env:EF_INSTALL_TEMP_DIR}\python-3.11.4-amd64.exe" ` + -PassThru ` + -Wait ` + -ArgumentList "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0" +$exitCode = $process.ExitCode +if ($exitCode -ne 0) { + Write-Error "python-3.11.4-amd64.exe failed with exit code ${exitCode}" +} +$env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') +$env:PATH = "$env:PATH;C:\Program Files\Python311" +[Environment]::SetEnvironmentVariable('PATH', $env:PATH, 'Machine') diff --git a/platform/windows_x64/docker/install_vs_build_tools.ps1 b/platform/windows_x64/docker/install_vs_build_tools.ps1 new file mode 100644 index 00000000..ee970cb0 --- /dev/null +++ b/platform/windows_x64/docker/install_vs_build_tools.ps1 @@ -0,0 +1,31 @@ +$ErrorActionPreference = "Stop" +if ($env:SCRIPT_DEBUG -ne "") { + $VerbosePreference = "continue" +} +$InformationPreference = "Continue" +# Don't show download progress because invoke-webrequest is slowed down by that. https://stackoverflow.com/a/43477248 +$global:ProgressPreference = "SilentlyContinue" + +Write-Verbose "Installing VS Buildtools (needed for Bazel)..." +Invoke-WebRequest -Uri "https://storage.googleapis.com/engflow-tools-public/vs_buildtools__859897378.1616711895.exe" -OutFile "c:/vs_buildtools__859897378.1616711895.exe" +$installArgs = @( + '--quiet', + '--wait', + '--add', + 'Microsoft.VisualStudio.Workload.VCTools', + '--add', + 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64', + '--add', + 'Microsoft.VisualStudio.Component.Windows10SDK.19041', + '--includeRecommended', + '--remove', + 'Microsoft.VisualStudio.Component.Windows10SDK.10240', + '--remove', + 'Microsoft.VisualStudio.Component.Windows10SDK.10586', + '--remove', + 'Microsoft.VisualStudio.Component.Windows10SDK.14393', + '--remove', + 'Microsoft.VisualStudio.Component.Windows81SDK' +) +Start-Process c:/vs_buildtools__859897378.1616711895.exe -Wait -ArgumentList ($installArgs -join ' ') +Remove-Item "c:/vs_buildtools__859897378.1616711895.exe" -Force diff --git a/platform/windows_x64/docker/normalize_os_windows.ps1 b/platform/windows_x64/docker/normalize_os_windows.ps1 new file mode 100644 index 00000000..6b32a91d --- /dev/null +++ b/platform/windows_x64/docker/normalize_os_windows.ps1 @@ -0,0 +1,22 @@ +$ErrorActionPreference = "Stop" +$InformationPreference = "Continue" +if ($env:SCRIPT_DEBUG -ne "") { + $VerbosePreference = "Continue" +} +# Don't show download progress because invoke-webrequest is slowed down by that. https://stackoverflow.com/a/43477248 +$global:ProgressPreference = "SilentlyContinue" +Set-StrictMode -Version latest + +# Create a directory to upload install artifacts. +# The file provisioner does not do this for us. +# This directory is removed below after reboot. +New-Item -Type Directory -Path "${env:EF_INSTALL_TEMP_DIR}" + +# Enable developer mode. This is needed so that the worker service can create symbolic links. +# Adapted from https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging#use-powershell-to-enable-your-device +New-ItemProperty ` + -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" ` + -Name "AllowDevelopmentWithoutDevLicense" ` + -Value 1 ` + -PropertyType DWORD ` + -Force diff --git a/platform/windows_x64/windows_cc_toolchain_config.bzl b/platform/windows_x64/windows_cc_toolchain_config.bzl new file mode 100644 index 00000000..8e64b8bb --- /dev/null +++ b/platform/windows_x64/windows_cc_toolchain_config.bzl @@ -0,0 +1,1424 @@ +# Copyright 2019 The Bazel Authors. All rights reserved. +# +# 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. + +"""A Starlark cc_toolchain configuration rule for Windows""" + +load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") +load( + "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "action_config", + "artifact_name_pattern", + "env_entry", + "env_set", + "feature", + "flag_group", + "flag_set", + "tool", + "tool_path", + "variable_with_value", + "with_feature_set", +) +load("@rules_cc//cc/common:cc_common.bzl", "cc_common") +load("@rules_cc//cc/toolchains:cc_toolchain_config_info.bzl", "CcToolchainConfigInfo") + +all_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ACTION_NAMES.lto_backend, +] + +all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, +] + +preprocessor_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, +] + +codegen_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, +] + +all_link_actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, +] + +def _use_msvc_toolchain(ctx): + return ctx.attr.cpu in ["x64_windows", "arm64_windows"] and (ctx.attr.compiler == "msvc-cl" or ctx.attr.compiler == "clang-cl") + +def _impl(ctx): + if _use_msvc_toolchain(ctx): + artifact_name_patterns = [ + artifact_name_pattern( + category_name = "object_file", + prefix = "", + extension = ".obj", + ), + artifact_name_pattern( + category_name = "static_library", + prefix = "", + extension = ".lib", + ), + artifact_name_pattern( + category_name = "alwayslink_static_library", + prefix = "", + extension = ".lo.lib", + ), + artifact_name_pattern( + category_name = "executable", + prefix = "", + extension = ".exe", + ), + artifact_name_pattern( + category_name = "dynamic_library", + prefix = "", + extension = ".dll", + ), + artifact_name_pattern( + category_name = "interface_library", + prefix = "", + extension = ".if.lib", + ), + ] + else: + artifact_name_patterns = [ + artifact_name_pattern( + category_name = "executable", + prefix = "", + extension = ".exe", + ), + ] + + if _use_msvc_toolchain(ctx): + cpp_link_nodeps_dynamic_library_action = action_config( + action_name = ACTION_NAMES.cpp_link_nodeps_dynamic_library, + implies = [ + "nologo", + "shared_flag", + "linkstamps", + "output_execpath_flags", + "input_param_flags", + "user_link_flags", + "linker_subsystem_flag", + "linker_param_file", + "msvc_env", + "no_stripping", + "has_configured_linker_path", + "def_file", + ], + tools = [tool(path = ctx.attr.msvc_link_path)], + ) + + cpp_link_static_library_action = action_config( + action_name = ACTION_NAMES.cpp_link_static_library, + implies = [ + "nologo", + "archiver_flags", + "input_param_flags", + "linker_param_file", + "msvc_env", + ], + tools = [tool(path = ctx.attr.msvc_lib_path)], + ) + + assemble_action = action_config( + action_name = ACTION_NAMES.assemble, + implies = [ + "compiler_input_flags", + "compiler_output_flags", + "nologo", + "msvc_env", + "sysroot", + ], + tools = [tool(path = ctx.attr.msvc_ml_path)], + ) + + preprocess_assemble_action = action_config( + action_name = ACTION_NAMES.preprocess_assemble, + implies = [ + "compiler_input_flags", + "compiler_output_flags", + "nologo", + "msvc_env", + "sysroot", + ], + tools = [tool(path = ctx.attr.msvc_ml_path)], + ) + + c_compile_action = action_config( + action_name = ACTION_NAMES.c_compile, + implies = [ + "compiler_input_flags", + "compiler_output_flags", + "nologo", + "msvc_env", + "parse_showincludes", + "user_compile_flags", + "sysroot", + ], + tools = [tool(path = ctx.attr.msvc_cl_path)], + ) + + linkstamp_compile_action = action_config( + action_name = ACTION_NAMES.linkstamp_compile, + implies = [ + "compiler_input_flags", + "compiler_output_flags", + "default_compile_flags", + "nologo", + "msvc_env", + "parse_showincludes", + "user_compile_flags", + "sysroot", + "unfiltered_compile_flags", + ], + tools = [tool(path = ctx.attr.msvc_cl_path)], + ) + + cpp_compile_action = action_config( + action_name = ACTION_NAMES.cpp_compile, + implies = [ + "compiler_input_flags", + "compiler_output_flags", + "nologo", + "msvc_env", + "parse_showincludes", + "user_compile_flags", + "sysroot", + ], + tools = [tool(path = ctx.attr.msvc_cl_path)], + ) + + cpp_link_executable_action = action_config( + action_name = ACTION_NAMES.cpp_link_executable, + implies = [ + "nologo", + "linkstamps", + "output_execpath_flags", + "input_param_flags", + "user_link_flags", + "linker_subsystem_flag", + "linker_param_file", + "msvc_env", + "no_stripping", + ], + tools = [tool(path = ctx.attr.msvc_link_path)], + ) + + cpp_link_dynamic_library_action = action_config( + action_name = ACTION_NAMES.cpp_link_dynamic_library, + implies = [ + "nologo", + "shared_flag", + "linkstamps", + "output_execpath_flags", + "input_param_flags", + "user_link_flags", + "linker_subsystem_flag", + "linker_param_file", + "msvc_env", + "no_stripping", + "has_configured_linker_path", + "def_file", + ], + tools = [tool(path = ctx.attr.msvc_link_path)], + ) + + action_configs = [ + assemble_action, + preprocess_assemble_action, + c_compile_action, + linkstamp_compile_action, + cpp_compile_action, + cpp_link_executable_action, + cpp_link_dynamic_library_action, + cpp_link_nodeps_dynamic_library_action, + cpp_link_static_library_action, + ] + else: + action_configs = [] + + if _use_msvc_toolchain(ctx): + msvc_link_env_feature = feature( + name = "msvc_link_env", + env_sets = [ + env_set( + actions = all_link_actions + + [ACTION_NAMES.cpp_link_static_library], + env_entries = [env_entry(key = "LIB", value = ctx.attr.msvc_env_lib)], + ), + ], + ) + + shared_flag_feature = feature( + name = "shared_flag", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [flag_group(flags = ["/DLL"])], + ), + ], + ) + + determinism_feature = feature( + name = "determinism", + enabled = True, + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "/wd4117", + "-D__DATE__=\"redacted\"", + "-D__TIMESTAMP__=\"redacted\"", + "-D__TIME__=\"redacted\"", + ] + (["-Wno-builtin-macro-redefined"] if ctx.attr.compiler == "clang-cl" else []), + ), + ], + ), + ], + ) + + sysroot_feature = feature( + name = "sysroot", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = ["--sysroot=%{sysroot}"], + iterate_over = "sysroot", + expand_if_available = "sysroot", + ), + ], + ), + ], + ) + + unfiltered_compile_flags_feature = feature( + name = "unfiltered_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ], + flag_groups = [ + flag_group( + flags = ["%{unfiltered_compile_flags}"], + iterate_over = "unfiltered_compile_flags", + expand_if_available = "unfiltered_compile_flags", + ), + ], + ), + ], + ) + + archive_param_file_feature = feature( + name = "archive_param_file", + enabled = True, + ) + + compiler_param_file_feature = feature( + name = "compiler_param_file", + enabled = True, + ) + + copy_dynamic_libraries_to_binary_feature = feature( + name = "copy_dynamic_libraries_to_binary", + ) + + input_param_flags_feature = feature( + name = "input_param_flags", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = ["/IMPLIB:%{interface_library_output_path}"], + expand_if_available = "interface_library_output_path", + ), + ], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["%{libopts}"], + iterate_over = "libopts", + expand_if_available = "libopts", + ), + ], + ), + flag_set( + actions = all_link_actions + + [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link.object_files", + flag_groups = [flag_group(flags = ["%{libraries_to_link.object_files}"])], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flag_groups = [flag_group(flags = ["%{libraries_to_link.name}"])], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flag_groups = [flag_group(flags = ["%{libraries_to_link.name}"])], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "interface_library", + ), + ), + flag_group( + flag_groups = [ + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_false = "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["/WHOLEARCHIVE:%{libraries_to_link.name}"], + expand_if_true = "libraries_to_link.is_whole_archive", + ), + ], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "static_library", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + ], + ), + ], + ) + + fastbuild_feature = feature( + name = "fastbuild", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/Od", "/Z7"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = [ctx.attr.fastbuild_mode_debug_flag, "/INCREMENTAL:NO"], + ), + ], + ), + ], + implies = ["generate_pdb_file"], + ) + + user_compile_flags_feature = feature( + name = "user_compile_flags", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ], + flag_groups = [ + flag_group( + flags = ["%{user_compile_flags}"], + iterate_over = "user_compile_flags", + expand_if_available = "user_compile_flags", + ), + ], + ), + ], + ) + + archiver_flags_feature = feature( + name = "archiver_flags", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group( + flags = ["/OUT:%{output_execpath}"], + expand_if_available = "output_execpath", + ), + flag_group( + flags = ctx.attr.archiver_flags, + ), + ], + ), + ], + ) + + default_link_flags_feature = feature( + name = "default_link_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ctx.attr.default_link_flags)], + ), + ], + ) + + static_link_msvcrt_feature = feature( + name = "static_link_msvcrt", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/MT"])], + with_features = [with_feature_set(not_features = ["dbg"])], + ), + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/MTd"])], + with_features = [with_feature_set(features = ["dbg"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["/DEFAULTLIB:libcmt.lib"])], + with_features = [with_feature_set(not_features = ["dbg"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["/DEFAULTLIB:libcmtd.lib"])], + with_features = [with_feature_set(features = ["dbg"])], + ), + ], + ) + + dynamic_link_msvcrt_feature = feature( + name = "dynamic_link_msvcrt", + enabled = True, + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/MD"])], + with_features = [with_feature_set(not_features = ["dbg", "static_link_msvcrt"])], + ), + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/MDd"])], + with_features = [with_feature_set(features = ["dbg"], not_features = ["static_link_msvcrt"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["/DEFAULTLIB:msvcrt.lib"])], + with_features = [with_feature_set(not_features = ["dbg", "static_link_msvcrt"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["/DEFAULTLIB:msvcrtd.lib"])], + with_features = [with_feature_set(features = ["dbg"], not_features = ["static_link_msvcrt"])], + ), + ], + ) + + dbg_feature = feature( + name = "dbg", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/Od", "/Z7"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = [ctx.attr.dbg_mode_debug_flag, "/INCREMENTAL:NO"], + ), + ], + ), + ], + implies = ["generate_pdb_file"], + ) + + opt_feature = feature( + name = "opt", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/O2"])], + ), + ], + implies = ["frame_pointer"], + ) + + supports_interface_shared_libraries_feature = feature( + name = "supports_interface_shared_libraries", + enabled = True, + ) + + user_link_flags_feature = feature( + name = "user_link_flags", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["%{user_link_flags}"], + iterate_over = "user_link_flags", + expand_if_available = "user_link_flags", + ), + ], + ), + ], + ) + + default_compile_flags_feature = feature( + name = "default_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = [ + "/DCOMPILER_MSVC", + "/DNOMINMAX", + "/D_WIN32_WINNT=0x0601", + "/D_CRT_SECURE_NO_DEPRECATE", + "/D_CRT_SECURE_NO_WARNINGS", + "/bigobj", + "/Zm500", + "/EHsc", + "/wd4351", + "/wd4291", + "/wd4250", + "/wd4996", + ], + ), + ], + ), + ], + ) + + msvc_compile_env_feature = feature( + name = "msvc_compile_env", + env_sets = [ + env_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ], + env_entries = [env_entry(key = "INCLUDE", value = ctx.attr.msvc_env_include)], + ), + ], + ) + + preprocessor_defines_feature = feature( + name = "preprocessor_defines", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group( + flags = ["/D%{preprocessor_defines}"], + iterate_over = "preprocessor_defines", + ), + ], + ), + ], + ) + + generate_pdb_file_feature = feature( + name = "generate_pdb_file", + ) + + output_execpath_flags_feature = feature( + name = "output_execpath_flags", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["/OUT:%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + ], + ) + + disable_assertions_feature = feature( + name = "disable_assertions", + enabled = True, + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/DNDEBUG"])], + with_features = [with_feature_set(features = ["opt"])], + ), + ], + ) + + has_configured_linker_path_feature = feature(name = "has_configured_linker_path") + + supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) + + no_stripping_feature = feature(name = "no_stripping") + + linker_param_file_feature = feature( + name = "linker_param_file", + flag_sets = [ + flag_set( + actions = all_link_actions + + [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group( + flags = ["@%{linker_param_file}"], + expand_if_available = "linker_param_file", + ), + ], + ), + ], + ) + + ignore_noisy_warnings_feature = feature( + name = "ignore_noisy_warnings", + enabled = True, + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [flag_group(flags = ["/ignore:4221"])], + ), + ], + ) + + no_legacy_features_feature = feature(name = "no_legacy_features") + + parse_showincludes_feature = feature( + name = "parse_showincludes", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_header_parsing, + ], + flag_groups = [flag_group(flags = ["/showIncludes"])], + ), + ], + ) + + treat_warnings_as_errors_feature = feature( + name = "treat_warnings_as_errors", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile] + all_link_actions, + flag_groups = [flag_group(flags = ["/WX"])], + ), + ], + ) + + windows_export_all_symbols_feature = feature(name = "windows_export_all_symbols") + + no_windows_export_all_symbols_feature = feature(name = "no_windows_export_all_symbols") + + include_paths_feature = feature( + name = "include_paths", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group( + flags = ["/I%{quote_include_paths}"], + iterate_over = "quote_include_paths", + ), + flag_group( + flags = ["/I%{include_paths}"], + iterate_over = "include_paths", + ), + flag_group( + flags = ["/I%{system_include_paths}"], + iterate_over = "system_include_paths", + ), + ], + ), + ], + ) + + external_include_paths_feature = feature( + name = "external_include_paths", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["/external:I", "%{external_include_paths}"], + iterate_over = "external_include_paths", + expand_if_available = "external_include_paths", + ), + ], + ), + ], + ) + + linkstamps_feature = feature( + name = "linkstamps", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["%{linkstamp_paths}"], + iterate_over = "linkstamp_paths", + expand_if_available = "linkstamp_paths", + ), + ], + ), + ], + ) + + targets_windows_feature = feature( + name = "targets_windows", + enabled = True, + implies = ["copy_dynamic_libraries_to_binary"], + ) + + linker_subsystem_flag_feature = feature( + name = "linker_subsystem_flag", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["/SUBSYSTEM:CONSOLE"])], + ), + ], + ) + + frame_pointer_feature = feature( + name = "frame_pointer", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/Oy-"])], + ), + ], + ) + + compiler_output_flags_feature = feature( + name = "compiler_output_flags", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.assemble], + flag_groups = [ + flag_group( + flag_groups = [ + flag_group( + flags = ["/Fo%{output_file}", "/Zi"], + expand_if_available = "output_file", + expand_if_not_available = "output_assembly_file", + ), + ], + expand_if_not_available = "output_preprocess_file", + ), + ], + ), + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ], + flag_groups = [ + flag_group( + flag_groups = [ + flag_group( + flags = ["/Fo%{output_file}"], + expand_if_not_available = "output_preprocess_file", + ), + ], + expand_if_available = "output_file", + expand_if_not_available = "output_assembly_file", + ), + flag_group( + flag_groups = [ + flag_group( + flags = ["/Fa%{output_file}"], + expand_if_available = "output_assembly_file", + ), + ], + expand_if_available = "output_file", + ), + flag_group( + flag_groups = [ + flag_group( + flags = ["/P", "/Fi%{output_file}"], + expand_if_available = "output_preprocess_file", + ), + ], + expand_if_available = "output_file", + ), + ], + ), + ], + ) + + nologo_feature = feature( + name = "nologo", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_static_library, + ], + flag_groups = [flag_group(flags = ["/nologo"])], + ), + ], + ) + + smaller_binary_feature = feature( + name = "smaller_binary", + enabled = True, + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["/Gy", "/Gw"])], + with_features = [with_feature_set(features = ["opt"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["/OPT:ICF", "/OPT:REF"])], + with_features = [with_feature_set(features = ["opt"])], + ), + ], + ) + + compiler_input_flags_feature = feature( + name = "compiler_input_flags", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ], + flag_groups = [ + flag_group( + flags = ["/c", "%{source_file}"], + expand_if_available = "source_file", + ), + ], + ), + ], + ) + + def_file_feature = feature( + name = "def_file", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["/DEF:%{def_file_path}", "/ignore:4070"], + expand_if_available = "def_file_path", + ), + ], + ), + ], + ) + + msvc_env_feature = feature( + name = "msvc_env", + env_sets = [ + env_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_static_library, + ], + env_entries = [ + env_entry(key = "PATH", value = ctx.attr.msvc_env_path), + env_entry(key = "TMP", value = ctx.attr.msvc_env_tmp), + env_entry(key = "TEMP", value = ctx.attr.msvc_env_tmp), + ], + ), + ], + implies = ["msvc_compile_env", "msvc_link_env"], + ) + features = [ + no_legacy_features_feature, + nologo_feature, + has_configured_linker_path_feature, + no_stripping_feature, + targets_windows_feature, + copy_dynamic_libraries_to_binary_feature, + default_compile_flags_feature, + msvc_env_feature, + msvc_compile_env_feature, + msvc_link_env_feature, + include_paths_feature, + external_include_paths_feature, + preprocessor_defines_feature, + parse_showincludes_feature, + generate_pdb_file_feature, + shared_flag_feature, + linkstamps_feature, + output_execpath_flags_feature, + archiver_flags_feature, + input_param_flags_feature, + linker_subsystem_flag_feature, + user_link_flags_feature, + default_link_flags_feature, + linker_param_file_feature, + static_link_msvcrt_feature, + dynamic_link_msvcrt_feature, + dbg_feature, + fastbuild_feature, + opt_feature, + frame_pointer_feature, + disable_assertions_feature, + determinism_feature, + treat_warnings_as_errors_feature, + smaller_binary_feature, + ignore_noisy_warnings_feature, + user_compile_flags_feature, + sysroot_feature, + unfiltered_compile_flags_feature, + archive_param_file_feature, + compiler_param_file_feature, + compiler_output_flags_feature, + compiler_input_flags_feature, + def_file_feature, + windows_export_all_symbols_feature, + no_windows_export_all_symbols_feature, + supports_dynamic_linker_feature, + supports_interface_shared_libraries_feature, + ] + else: + targets_windows_feature = feature( + name = "targets_windows", + implies = ["copy_dynamic_libraries_to_binary"], + enabled = True, + ) + + copy_dynamic_libraries_to_binary_feature = feature(name = "copy_dynamic_libraries_to_binary") + + gcc_env_feature = feature( + name = "gcc_env", + enabled = True, + env_sets = [ + env_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_static_library, + ], + env_entries = [ + env_entry(key = "PATH", value = ctx.attr.tool_bin_path), + ], + ), + ], + ) + + default_compile_flags_feature = feature( + name = "default_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = [flag_group(flags = ["-std=gnu++14"])], + ), + ], + ) + + default_link_flags_feature = feature( + name = "default_link_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["-lstdc++"])], + ), + ], + ) + + supports_dynamic_linker_feature = feature( + name = "supports_dynamic_linker", + enabled = True, + ) + + dbg_feature = feature( + name = "dbg", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["-g", "-Og"])], + ), + ], + ) + + opt_feature = feature( + name = "opt", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = [ + "-g0", + "-O3", + "-DNDEBUG", + "-ffunction-sections", + "-fdata-sections", + ])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["-Wl,--gc-sections"])], + ), + ], + ) + + if ctx.attr.cpu == "x64_windows" and ctx.attr.compiler == "mingw-gcc": + archive_param_file_feature = feature( + name = "archive_param_file", + enabled = True, + ) + + compiler_param_file_feature = feature( + name = "compiler_param_file", + ) + + features = [ + targets_windows_feature, + copy_dynamic_libraries_to_binary_feature, + gcc_env_feature, + default_compile_flags_feature, + archive_param_file_feature, + compiler_param_file_feature, + default_link_flags_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + ] + else: + supports_pic_feature = feature( + name = "supports_pic", + enabled = True, + ) + + sysroot_feature = feature( + name = "sysroot", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = ["--sysroot=%{sysroot}"], + expand_if_available = "sysroot", + ), + ], + ), + ], + ) + + fdo_optimize_feature = feature( + name = "fdo_optimize", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-use=%{fdo_profile_path}", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + treat_warnings_as_errors_feature = feature( + name = "treat_warnings_as_errors", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [flag_group(flags = ["-Werror"])], + ), + flag_set( + actions = all_link_actions, + flag_groups = [flag_group(flags = ["-Wl,-fatal-warnings"])], + ), + ], + ) + + user_compile_flags_feature = feature( + name = "user_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["%{user_compile_flags}"], + iterate_over = "user_compile_flags", + expand_if_available = "user_compile_flags", + ), + ], + ), + ], + ) + + features = [ + targets_windows_feature, + copy_dynamic_libraries_to_binary_feature, + gcc_env_feature, + supports_pic_feature, + default_compile_flags_feature, + default_link_flags_feature, + fdo_optimize_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + user_compile_flags_feature, + treat_warnings_as_errors_feature, + sysroot_feature, + ] + + tool_paths = [ + tool_path(name = name, path = path) + for name, path in ctx.attr.tool_paths.items() + ] + + return cc_common.create_cc_toolchain_config_info( + ctx = ctx, + features = features, + action_configs = action_configs, + artifact_name_patterns = artifact_name_patterns, + cxx_builtin_include_directories = ctx.attr.cxx_builtin_include_directories, + toolchain_identifier = ctx.attr.toolchain_identifier, + host_system_name = ctx.attr.host_system_name, + target_system_name = ctx.attr.target_system_name, + target_cpu = ctx.attr.cpu, + target_libc = ctx.attr.target_libc, + compiler = ctx.attr.compiler, + abi_version = ctx.attr.abi_version, + abi_libc_version = ctx.attr.abi_libc_version, + tool_paths = tool_paths, + ) + +cc_toolchain_config = rule( + implementation = _impl, + attrs = { + "cpu": attr.string(mandatory = True), + "compiler": attr.string(), + "toolchain_identifier": attr.string(), + "host_system_name": attr.string(), + "target_system_name": attr.string(), + "target_libc": attr.string(), + "abi_version": attr.string(), + "abi_libc_version": attr.string(), + "tool_paths": attr.string_dict(), + "cxx_builtin_include_directories": attr.string_list(), + "archiver_flags": attr.string_list(default = []), + "default_link_flags": attr.string_list(default = []), + "msvc_env_tmp": attr.string(default = "msvc_not_found"), + "msvc_env_path": attr.string(default = "msvc_not_found"), + "msvc_env_include": attr.string(default = "msvc_not_found"), + "msvc_env_lib": attr.string(default = "msvc_not_found"), + "msvc_cl_path": attr.string(default = "vc_installation_error.bat"), + "msvc_ml_path": attr.string(default = "vc_installation_error.bat"), + "msvc_link_path": attr.string(default = "vc_installation_error.bat"), + "msvc_lib_path": attr.string(default = "vc_installation_error.bat"), + "dbg_mode_debug_flag": attr.string(), + "fastbuild_mode_debug_flag": attr.string(), + "tool_bin_path": attr.string(default = "not_found"), + }, + provides = [CcToolchainConfigInfo], +) diff --git a/python/BUILD b/python/BUILD new file mode 100644 index 00000000..8db53f9c --- /dev/null +++ b/python/BUILD @@ -0,0 +1,67 @@ +load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("@rules_python//python:defs.bzl", "py_binary", "py_library", "py_test") +load("@rules_python//python:pip.bzl", "compile_pip_requirements") +load("//python/pytest:pytest.bzl", "pytest_test") + +py_library( + name = "hello", + srcs = ["hello.py"], +) + +py_binary( + name = "python", + srcs = ["main.py"], + main = "main.py", + deps = [":hello"], +) + +# Supports sharding, fast-failing and test filtering out of the box: try +# bazel test //python:hello_absl_test --test_filter="HelloTest.test_hello" --test_output=all +# `--test_filter` values are as in https://docs.python.org/3/library/unittest.html#cmdoption-unittest-k +py_test( + name = "hello_absl_test", + size = "small", + srcs = ["hello_absl_test.py"], + shard_count = 2, + deps = [ + ":hello", + "@io_abseil_py//absl/testing:absltest", + ], +) + +# This wrapper supports sharding, fast-failing and test filtering: try +# bazel test //python:hello_pytest_test --test_filter="not test_hello" --test_output=all +# This corresponds to Pytest's `-k` flag: see https://docs.pytest.org/en/latest/reference/reference.html#command-line-flags +pytest_test( + name = "hello_pytest_test", + size = "small", + srcs = ["hello_pytest_test.py"], + shard_count = 2, + tags = ["todo-pe1188-remote-incompatible"], + deps = [":hello"], +) + +py_test( + name = "hello_unittest_test", + size = "small", + srcs = ["hello_unittest_test.py"], + deps = [":hello"], +) + +# Utility to help re-generate requirements lock. +# +# Validate: bazel test //python:requirements_test +# Update: bazel run //python:requirements.update +compile_pip_requirements( + name = "requirements", + requirements_in = "requirements.txt", + requirements_txt = "requirements_lock.txt", + tags = ["manual"], +) + +build_test( + name = "python_test", + targets = [ + ":python", + ], +) diff --git a/python/hello.py b/python/hello.py new file mode 100644 index 00000000..5a6715cd --- /dev/null +++ b/python/hello.py @@ -0,0 +1,12 @@ +"""Example Python module.""" + +import sys + + +def hello(): + return "Hello" + + +def goodbye(): + print("goodbye called", file=sys.stderr) + return "Goodbye" diff --git a/python/hello_absl_test.py b/python/hello_absl_test.py new file mode 100644 index 00000000..f638a392 --- /dev/null +++ b/python/hello_absl_test.py @@ -0,0 +1,20 @@ +"""An example Python test using Abseil Python. + +See https://abseil.io/docs/python/guides/testing +""" + +from absl.testing import absltest + +from python import hello + + +class HelloTest(absltest.TestCase): + def test_hello(self): + self.assertEqual("Hello", hello.hello()) + + def test_goodbye(self): + self.assertEqual("Goodbye", hello.goodbye()) + + +if __name__ == "__main__": + absltest.main() diff --git a/python/hello_pytest_test.py b/python/hello_pytest_test.py new file mode 100644 index 00000000..126481dd --- /dev/null +++ b/python/hello_pytest_test.py @@ -0,0 +1,14 @@ +"""An example Python test using Pytest. + +See https://docs.pytest.org/ +""" + +from python import hello + + +def test_hello(): + assert "Hello" == hello.hello() + + +def test_goodbye(): + assert "Goodbye" == hello.goodbye() diff --git a/python/hello_unittest_test.py b/python/hello_unittest_test.py new file mode 100644 index 00000000..449aa83f --- /dev/null +++ b/python/hello_unittest_test.py @@ -0,0 +1,17 @@ +"""An example Python test using Python's built-in unittest module.""" + +import unittest + +from python import hello + + +class HelloTest(unittest.TestCase): + def test_hello(self): + self.assertEqual("Hello", hello.hello()) + + def test_goodbye(self): + self.assertEqual("Goodbye", hello.goodbye()) + + +if __name__ == "__main__": + unittest.main() diff --git a/python/main.py b/python/main.py new file mode 100644 index 00000000..91bc616d --- /dev/null +++ b/python/main.py @@ -0,0 +1,9 @@ +from python import hello + + +def main(): + print(hello.hello()) + + +if __name__ == "__main__": + main() diff --git a/python/pytest/BUILD b/python/pytest/BUILD new file mode 100644 index 00000000..d9df9b69 --- /dev/null +++ b/python/pytest/BUILD @@ -0,0 +1,12 @@ +load("@pip//:requirements.bzl", "requirement") +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "pytest_runner", + srcs = ["pytest_runner.py"], + visibility = ["//visibility:public"], + deps = [ + requirement("pytest"), + requirement("pytest-shard"), + ], +) diff --git a/python/pytest/pytest.bzl b/python/pytest/pytest.bzl new file mode 100644 index 00000000..a189c8a1 --- /dev/null +++ b/python/pytest/pytest.bzl @@ -0,0 +1,28 @@ +"""Support for Pytest tests.""" + +load("@rules_python//python:defs.bzl", "py_test") + +def pytest_test(name, srcs = [], deps = [], args = [], **kwargs): + pytest_args = [ + # Disable Pytest's own caching. + "-p", + "no:cacheprovider", + # Generate the XML summary where Bazel expects it. + "--junit-xml=$$XML_OUTPUT_FILE", + # Print the captured output of all tests, so Bazel's --test_output works as expected. + "-rA", + # Avoid collecting tests automatically; use what's in `srcs`. + "--ignore=.", + ] + [ + "$(location %s)" % src + for src in srcs + ] + args + + py_test( + name = name, + srcs = srcs + ["//python/pytest:pytest_runner"], + main = "pytest_runner.py", + deps = deps + ["//python/pytest:pytest_runner"], + args = pytest_args, + **kwargs + ) diff --git a/python/pytest/pytest_runner.py b/python/pytest/pytest_runner.py new file mode 100644 index 00000000..8f0eb9ad --- /dev/null +++ b/python/pytest/pytest_runner.py @@ -0,0 +1,47 @@ +"""Bazel adapter for Pytest.""" + +import os +import sys + +import pytest + + +if __name__ == "__main__": + extra_args = [] + + # Support `shard_count` on test targets. + test_total_shards = os.environ.get("TEST_TOTAL_SHARDS") + test_shard_index = os.environ.get("TEST_SHARD_INDEX") + if test_total_shards: + extra_args.extend( + [ + "--num-shards", + test_total_shards, + "--shard-id", + test_shard_index, + ] + ) + with open(os.environ["TEST_SHARD_STATUS_FILE"], "wb"): pass + + # Support `--test_filter` on the command line. + test_filter = os.environ.get("TESTBRIDGE_TEST_ONLY") + if test_filter: + extra_args.extend(["-k", test_filter]) + + # Support `--test_runner_fail_fast` on the command line. + fail_fast = os.environ.get("TESTBRIDGE_TEST_RUNNER_FAIL_FAST") + if fail_fast: + extra_args.extend(["--maxfail=1"]) + + exit_code = pytest.main(sys.argv + extra_args) + if exit_code == pytest.ExitCode.NO_TESTS_COLLECTED: + # Pytest usually fails when no tests are found, but we accept this for + # sharded tests or with user-specified filters. + if test_total_shards: + print( + "WARNING: No tests found for this shard. Consider reducing " + "the shard_count on your test target.", + file=sys.stderr, + ) + sys.exit(pytest.ExitCode.OK) + sys.exit(exit_code) diff --git a/python/requirements.txt b/python/requirements.txt new file mode 100644 index 00000000..14397b07 --- /dev/null +++ b/python/requirements.txt @@ -0,0 +1,2 @@ +pytest +pytest-shard diff --git a/python/requirements_lock.txt b/python/requirements_lock.txt new file mode 100644 index 00000000..92472773 --- /dev/null +++ b/python/requirements_lock.txt @@ -0,0 +1 @@ +# Run `bazel run //python:requirements.update` to generate this file for your platform. \ No newline at end of file diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000..ee4e7dc6 --- /dev/null +++ b/renovate.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ], + "username": "engflow-github-automation", + "gitAuthor": "engflow-github-automation ", + "onboarding": false, + "enabledManagers": [ + "bazel", + "npm" + ], + "vulnerabilityAlerts": { + "enabled": true + }, + "platform": "github", + "repositories": [ + "EngFlow/example" + ], + "prConcurrentLimit": 0, + "prHourlyLimit": 0 +} \ No newline at end of file diff --git a/runfiles/README.md b/runfiles/README.md new file mode 100644 index 00000000..b123491e --- /dev/null +++ b/runfiles/README.md @@ -0,0 +1,18 @@ +# EngFlow Runfiles Libraries Demo + +This is the example code for the EngFlow blog post "[Migrating to Bazel +Modules (a.k.a. Bzlmod) - Repo Names and Runfiles][blog]." + +- `engflow` contains the main repository of the example +- `frobozz` is a separate Bazel module representing an external dependency + +To try it out: + +```sh +cd engflow +bazel run //:runfiles_demo +bazel build //:runfiles_genrule_demo && + cat bazel-bin/demo_output.txt +``` + +[blog]: https://blog.engflow.com/2024/08/09/migrating-to-bazel-modules-aka-bzlmod---repo-names-and-runfiles/ diff --git a/runfiles/engflow/BUILD b/runfiles/engflow/BUILD new file mode 100644 index 00000000..b1993637 --- /dev/null +++ b/runfiles/engflow/BUILD @@ -0,0 +1,36 @@ +load("@rules_python//python:defs.bzl", "py_binary") + +py_binary( + name = "runfiles_demo", + srcs = ["runfiles_demo.py"], + # Demonstrate using rlocationpaths in "args". If you prefer, you can put + # all of these in "env". + args = [ + "$(rlocationpaths //data)", + ], + data = [ + "//data", + "@frobozz//:files", + ], + # Demonstrate using rlocationpaths in "env". If you prefer, you can put + # all of these in "args". + env = { + "RUNFILE_PATHS": "$(rlocationpaths @frobozz//:files)", + }, + deps = ["@rules_python//python/runfiles"], +) + +genrule( + name = "runfiles_genrule_demo", + srcs = [ + "//data:0-foo.txt", + "@frobozz//:1-gue.txt", + ], + outs = ["demo_output.txt"], + # Demonstrate passing rlocationpaths using both an environment variable and + # a command line argument. In practice, you may choose to use only one + # method or the other. + cmd = "RUNFILE_PATHS=\"$(rlocationpath @frobozz//:1-gue.txt)\"" + + " $(execpath :runfiles_demo) $(rlocationpath //data:0-foo.txt) >$@", + tools = [":runfiles_demo"], +) diff --git a/runfiles/engflow/MODULE.bazel b/runfiles/engflow/MODULE.bazel new file mode 100644 index 00000000..5202dbc9 --- /dev/null +++ b/runfiles/engflow/MODULE.bazel @@ -0,0 +1,22 @@ +# Note: Not our actual MODULE.bazel +module( + name = "engflow", + version = "0.0.0", +) + +bazel_dep(name = "frobozz") +local_path_override( + module_name = "frobozz", + path = "../frobozz", +) + +bazel_dep(name = "rules_python", version = "0.34.0") + +python = use_extension( + "@rules_python//python/extensions:python.bzl", + "python", +) +python.toolchain( + is_default = True, + python_version = "3.12.3", +) diff --git a/runfiles/engflow/MODULE.bazel.lock b/runfiles/engflow/MODULE.bazel.lock new file mode 100644 index 00000000..7a0c3003 --- /dev/null +++ b/runfiles/engflow/MODULE.bazel.lock @@ -0,0 +1,127 @@ +{ + "lockFileVersion": 11, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/source.json": "14892cc698e02ffedf4967546e6bedb7245015906888d3465fcf27c90a26da10", + "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", + "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/googletest/1.14.0/source.json": "2478949479000fdd7de9a3d0107ba2c85bb5f961c3ecb1aa448f52549ce310b5", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a", + "https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12", + "https://bcr.bazel.build/modules/protobuf/24.4/source.json": "ace4b8c65d4cfe64efe544f09fc5e5df77faf3a67fbb29c5341e0d755d9b15d6", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel": "30d9135a2b6561c761bd67bd4990da591e6bdc128790ce3e7afd6a3558b2fb64", + "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", + "https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/source.json": "5abb45cc9beb27b77aec6a65a11855ef2b55d95dfdc358e9f312b78ae0ba32d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/source.json": "8d8448e71706df7450ced227ca6b3812407ff5e2ccad74a43a9fbe79c84e34e0", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.34.0/MODULE.bazel": "1d623d026e075b78c9fde483a889cda7996f5da4f36dffb24c246ab30f06513a", + "https://bcr.bazel.build/modules/rules_python/0.34.0/source.json": "113116e287eec64a7d005a9db44865d810499fdc4f621e352aff58214f5ea2d8", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.3/source.json": "cd53fe968dc8cd98197c052db3db6d82562960c87b61e7a90ee96f8e4e0dda97", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9", + "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/source.json": "b2150404947339e8b947c6b16baa39fa75657f4ddec5e37272c7b11c7ab533bc", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": { + "general": { + "bzlTransitiveDigest": "PjIds3feoYE8SGbbIq2SFTZy3zmxeO2tQevJZNDo7iY=", + "usagesDigest": "aLmqbvowmHkkBPve05yyDNGN7oh7QE9kBADr3QIZTZs=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_apple_cc": { + "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "ruleClassName": "_apple_cc_autoconf", + "attributes": {} + }, + "local_config_apple_cc_toolchains": { + "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "ruleClassName": "_apple_cc_autoconf_toolchains", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [ + [ + "apple_support~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@platforms//host:extension.bzl%host_platform": { + "general": { + "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=", + "usagesDigest": "meSzxn3DUCcYEhq4HQwExWkWtU4EjriRBQLsZN+Q0SU=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "host_platform": { + "bzlFile": "@@platforms//host:extension.bzl", + "ruleClassName": "host_platform_repo", + "attributes": {} + } + }, + "recordedRepoMappingEntries": [] + } + } + } +} diff --git a/runfiles/engflow/data/0-foo.txt b/runfiles/engflow/data/0-foo.txt new file mode 100644 index 00000000..e69de29b diff --git a/runfiles/engflow/data/1-bar.txt b/runfiles/engflow/data/1-bar.txt new file mode 100644 index 00000000..e69de29b diff --git a/runfiles/engflow/data/2-baz.txt b/runfiles/engflow/data/2-baz.txt new file mode 100644 index 00000000..e69de29b diff --git a/runfiles/engflow/data/BUILD b/runfiles/engflow/data/BUILD new file mode 100644 index 00000000..067e47e1 --- /dev/null +++ b/runfiles/engflow/data/BUILD @@ -0,0 +1,10 @@ +filegroup( + name = "data", + srcs = glob(["*.txt"]), + visibility = ["//visibility:public"], +) + +exports_files( + ["0-foo.txt"], + visibility = ["//visibility:public"], +) diff --git a/runfiles/engflow/runfiles_demo.py b/runfiles/engflow/runfiles_demo.py new file mode 100644 index 00000000..f0dddc56 --- /dev/null +++ b/runfiles/engflow/runfiles_demo.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +# +# Copyright 2024 EngFlow Inc. +# +# 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. + +"""Runfiles library demonstration program""" + +import os +import os.path +import sys + +from python.runfiles import runfiles + +_RUNFILES = runfiles.Create() + + +def print_runfile_info(runfiles_dir, runfile_path): + """Prints information about a runfile path to standard output. + + Args: + runfiles_dir: path to the runfiles directory + runfile_path: the runfile path to examine + """ + actual_path = _RUNFILES.Rlocation(runfile_path) + runfiles_link = os.path.join(runfiles_dir, runfile_path) + actual_exists = actual_path is not None and os.path.exists(actual_path) + print(f' runfile path: {runfile_path}') + print(f' runfiles link: {runfiles_link}') + print(f' link exists: {os.path.lexists(runfiles_link)}') + print(f' actual path: {actual_path}') + print(f' exists: {actual_exists}\n') + + +def print_runfiles_information(argv, environ, cwd): + """Prints information about this program's runfiles to standard output. + + Args: + argv: list of command line arguments + environ: dictionary of environment variables + cwd: current working directory + """ + runfiles_dir = None + + if 'RUNFILES_DIR' in environ: + runfiles_dir = environ['RUNFILES_DIR'] + print(f'RUNFILES_DIR: {runfiles_dir}') + + if 'RUNFILES_MANIFEST_FILE' in environ: + manifest_file = environ['RUNFILES_MANIFEST_FILE'] + print(f'RUNFILES_MANIFEST_FILE: {manifest_file}') + + if runfiles_dir is None: + runfiles_dir = manifest_file.removesuffix('_manifest') + print(f'runfiles dir: {runfiles_dir}') + + print(f'current working dir: {cwd}\n') + + if len(argv) != 1: + print('From the command line arguments:') + for arg in argv[1:]: + print_runfile_info(runfiles_dir, arg) + + if 'RUNFILE_PATHS' in environ: + print('From the RUNFILE_PATHS environment variable:') + for path in environ['RUNFILE_PATHS'].split(' '): + print_runfile_info(runfiles_dir, path) + + +if __name__ == '__main__': + print_runfiles_information(sys.argv, os.environ, os.getcwd()) diff --git a/runfiles/frobozz/1-gue.txt b/runfiles/frobozz/1-gue.txt new file mode 100644 index 00000000..e69de29b diff --git a/runfiles/frobozz/2-wof.txt b/runfiles/frobozz/2-wof.txt new file mode 100644 index 00000000..e69de29b diff --git a/runfiles/frobozz/3-tdm.txt b/runfiles/frobozz/3-tdm.txt new file mode 100644 index 00000000..e69de29b diff --git a/runfiles/frobozz/BUILD b/runfiles/frobozz/BUILD new file mode 100644 index 00000000..239fb3ca --- /dev/null +++ b/runfiles/frobozz/BUILD @@ -0,0 +1,10 @@ +filegroup( + name = "files", + srcs = glob(["*.txt"]), + visibility = ["//visibility:public"], +) + +exports_files( + ["1-gue.txt"], + visibility = ["//visibility:public"], +) diff --git a/runfiles/frobozz/MODULE.bazel b/runfiles/frobozz/MODULE.bazel new file mode 100644 index 00000000..7ac08b7a --- /dev/null +++ b/runfiles/frobozz/MODULE.bazel @@ -0,0 +1,4 @@ +module( + name = "frobozz", + version = "1.0.0", +) diff --git a/runfiles/frobozz/MODULE.bazel.lock b/runfiles/frobozz/MODULE.bazel.lock new file mode 100644 index 00000000..ed98fda9 --- /dev/null +++ b/runfiles/frobozz/MODULE.bazel.lock @@ -0,0 +1,64 @@ +{ + "lockFileVersion": 11, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad", + "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", + "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/7.6.1/source.json": "8f3f3076554e1558e8e468b2232991c510ecbcbed9e6f8c06ac31c93bcf38362", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.22.1/source.json": "57226905e783bae7c37c2dd662be078728e48fa28ee4324a7eabcafb5a43d014", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72", + "https://bcr.bazel.build/modules/zlib/1.3/source.json": "b6b43d0737af846022636e6e255fd4a96fee0d34f08f3830e6e0bac51465c37c" + }, + "selectedYankedVersions": {}, + "moduleExtensions": {} +} diff --git a/scala/BUILD b/scala/BUILD new file mode 100644 index 00000000..e69de29b diff --git a/scala/com/engflow/example/BUILD b/scala/com/engflow/example/BUILD new file mode 100644 index 00000000..4ea27993 --- /dev/null +++ b/scala/com/engflow/example/BUILD @@ -0,0 +1,13 @@ +load("@rules_scala//scala:scala.bzl", "scala_library", "scala_test") + +scala_library( + name = "exampleScala", + srcs = ["ScalaExample.scala"], +) + +scala_test( + name = "exampleScalaTest", + size = "small", + srcs = ["ScalaExampleTest.scala"], + deps = [":exampleScala"], +) diff --git a/scala/com/engflow/example/ScalaExample.scala b/scala/com/engflow/example/ScalaExample.scala new file mode 100644 index 00000000..f279f807 --- /dev/null +++ b/scala/com/engflow/example/ScalaExample.scala @@ -0,0 +1,16 @@ +package com.engflow.example; + +object ScalaExample { + def fizzbuzz(i: Int): String = { + if (i % 3 == 0){ + if (i % 5 == 0){ + return "FizzBuzz"; + } + return "Fizz"; + } else if (i % 5 == 0){ + return "Buzz"; + } else { + return Integer.toString(i); + } + } +} diff --git a/scala/com/engflow/example/ScalaExampleTest.scala b/scala/com/engflow/example/ScalaExampleTest.scala new file mode 100644 index 00000000..ddded496 --- /dev/null +++ b/scala/com/engflow/example/ScalaExampleTest.scala @@ -0,0 +1,14 @@ +package com.engflow.example +// import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite + +class ScalaExampleTest extends AnyFunSuite { + test ("engflow scala tests") { + assert("1" == ScalaExample.fizzbuzz(1)) + assert("2" == ScalaExample.fizzbuzz(2)) + assert("Fizz" == ScalaExample.fizzbuzz(3)) + assert("4" == ScalaExample.fizzbuzz(4)) + assert("Buzz" == ScalaExample.fizzbuzz(5)) + assert("FizzBuzz" == ScalaExample.fizzbuzz(15)) + } +} diff --git a/scala/extensions/README.md b/scala/extensions/README.md new file mode 100644 index 00000000..13cf9263 --- /dev/null +++ b/scala/extensions/README.md @@ -0,0 +1,42 @@ +# Former `rules_scala` module extensions directory + +We removed the [module extensions][] from this directory after the release of +[rules_scala v7.0.0][], which supports [Bazel modules (a.k.a. Bzlmod)][Bzlmod] +directly. We also removed the patch for `rules_scala` v6.6.0 from this +directory's parent. + +[Migrating to Bazel Modules (a.k.a. Bzlmod) - Module Extensions][post] from the +[EngFlow 'bzlmod' blog post series][series] describes the former extensions and +their configuration in detail. You can also see the previous files in the git +history at commit `79b5193`: + +- [MODULE.bazel](https://github.com/EngFlow/example/blob/79b51930e4629486462c0f9787a25d035b6c4450/MODULE.bazel#L167-L317) +- [scala/extensions/config.bzl](https://github.com/EngFlow/example/blob/79b51930e4629486462c0f9787a25d035b6c4450/scala/extensions/config.bzl) +- [scala/extensions/deps.bzl](https://github.com/EngFlow/example/blob/79b51930e4629486462c0f9787a25d035b6c4450/scala/extensions/deps.bzl) +- [scala/rules_scala-6.6.0.patch](https://github.com/EngFlow/example/blob/79b51930e4629486462c0f9787a25d035b6c4450/scala/rules_scala-6.6.0.patch) + +You can view these files locally using: + +```txt +git show 79b5193:MODULE.bazel +git show 79b5193:scala/extensions/config.bzl +git show 79b5193:scala/extensions/deps.bzl +git show 79b5193:scala/rules_scala-6.6.0.patch +``` + +To see the content of the `scala/extensions` directory at that commit: + +```sh +$ git show 79b5193:scala/extensions +tree 79b5193:scala/extensions + +BUILD +config.bzl +deps.bzl +``` + +[Bzlmod]: https://bazel.build/external/module +[module extensions]: https://bazel.build/external/extension +[rules_scala v7.0.0]: https://github.com/bazel-contrib/rules_scala/releases/tag/v7.0.0 +[post]: https://blog.engflow.com/2025/01/16/migrating-to-bazel-modules-aka-bzlmod---module-extensions/ +[series]: https://blog.engflow.com/category/bzlmod/ diff --git a/swift/BUILD b/swift/BUILD new file mode 100644 index 00000000..8afe0131 --- /dev/null +++ b/swift/BUILD @@ -0,0 +1,13 @@ +load("@rules_swift//swift:swift.bzl", "swift_test") + +swift_test( + name = "swift_test", + size = "small", + srcs = [ + "example.swift", + #"main.swift", + ], + tags = [ + "no-linux-ci", # No linux swift toolchains currently defined. + ], +) diff --git a/swift/example.swift b/swift/example.swift new file mode 100644 index 00000000..a5537266 --- /dev/null +++ b/swift/example.swift @@ -0,0 +1,29 @@ +import XCTest + +class SwiftTests: XCTestCase { + func fizzbuzz(i: Int) -> String { + if (i % 3 == 0) { + if (i % 5 == 0) { + return "FizzBuzz"; + } + return "Fizz"; + } + if (i % 5 == 0) { + return "Buzz"; + } + return String(i); + } + + func test() { + XCTAssertEqual(fizzbuzz(i: 1), "1") + XCTAssertEqual(fizzbuzz(i: 2), "2") + XCTAssertEqual(fizzbuzz(i: 3), "Fizz") + XCTAssertEqual(fizzbuzz(i: 4), "4") + XCTAssertEqual(fizzbuzz(i: 5), "Buzz") + XCTAssertEqual(fizzbuzz(i: 15), "FizzBuzz") + } + + static var allTests = [ + ("test", test), + ] +} diff --git a/swift/main.swift b/swift/main.swift new file mode 100644 index 00000000..2a4a87f5 --- /dev/null +++ b/swift/main.swift @@ -0,0 +1,7 @@ +#if os(Linux) +import XCTest + +XCTMain([ + testCase(SwiftTests.allTests), +]) +#endif diff --git a/typescript/BUILD b/typescript/BUILD new file mode 100644 index 00000000..cb5fe906 --- /dev/null +++ b/typescript/BUILD @@ -0,0 +1,16 @@ +load("@aspect_rules_ts//ts:defs.bzl", "ts_project") +load("@bazel_skylib//rules:build_test.bzl", "build_test") + +ts_project( + name = "typescript", + srcs = ["main.ts"], + declaration = True, + out_dir = ".", +) + +build_test( + name = "typescript_test", + targets = [ + ":typescript", + ], +) diff --git a/typescript/main.ts b/typescript/main.ts new file mode 100644 index 00000000..355c7495 --- /dev/null +++ b/typescript/main.ts @@ -0,0 +1,4 @@ +export const hello: String = "Hello "; +export const world: String = "World "; + +console.log(hello, world); diff --git a/typescript/package.json b/typescript/package.json new file mode 100644 index 00000000..d68d1634 --- /dev/null +++ b/typescript/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "typescript": "5.5.3" + } +} diff --git a/typescript/pnpm-lock.yaml b/typescript/pnpm-lock.yaml new file mode 100644 index 00000000..54923251 --- /dev/null +++ b/typescript/pnpm-lock.yaml @@ -0,0 +1,24 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + typescript: + specifier: 5.5.3 + version: 5.5.3 + +packages: + + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + engines: {node: '>=14.17'} + hasBin: true + +snapshots: + + typescript@5.5.3: {} diff --git a/typescript/tsconfig.json b/typescript/tsconfig.json new file mode 100644 index 00000000..4778193b --- /dev/null +++ b/typescript/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "declaration": true, + } +}